سؤال

الوظيفة العامة إضافة ($ child) {return $ this-> children [] = $ child ؛ }

راجع للشغل ، هذا مقتطف من PHP في العمل من قبل Dagfinn رايرسول. وفقًا للكتاب ، فإن هذا يعيد $ child ، لكن ألا ينبغي أن يعود بشكل صحيح في حالة المهمة الناجحة وخطأ خلاف ذلك؟

شكرا مقدما

هل كانت مفيدة؟

المحلول

يعود $child. هذا بسبب $child يضاف لأول مرة إلى المصفوفة $this->children[]. ثم ، يتم إرجاع نتيجة هذه المهمة.

في الأساس ، إنه اختصار لـ:

public function add($child){
    $this->children[]=$child;
    return $child;
}

هذا النوع من الاختصار يعمل لأنه ، في PHP ، المهمة "اليمنى": http://www.php.net/manual/en/language.operators.precedence.php

هذا يعني ذاك $a = ($b = 3) يتم تقييمه فعليًا من اليمين إلى اليسار 3 يتم تخزينها $b وثم $a. أيضًا ، إليك ملاحظة على الصفحة التي قدمتها رابطًا إلى:

على الرغم من أن = لها أسبقية أقل من معظم المشغلين الآخرين ، إلا أن PHP ستسمح بتعبيرات مماثلة لما يلي: if (!$a = foo()), في هذه الحالة قيمة إرجاع foo() يتم وضعه في $a.

معلومات اكثر: http://en.wikipedia.org/wiki/Operator_associativity

نصائح أخرى

إنها تعيد الطفل ، لأن المهمة تُرجع فقط كل ما تم تعيينه.

ما إذا كان يجب أن تعود صحيحًا عند النجاح ، فهذا ليس قاعدة ، لذلك إذا كان الأمر كذلك موثق لإعادة الطفل ، هذا صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top