ماذا تعود وظيفة PHP هذه؟
-
04-10-2019 - |
سؤال
الوظيفة العامة إضافة ($ 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
نصائح أخرى
إنها تعيد الطفل ، لأن المهمة تُرجع فقط كل ما تم تعيينه.
ما إذا كان يجب أن تعود صحيحًا عند النجاح ، فهذا ليس قاعدة ، لذلك إذا كان الأمر كذلك موثق لإعادة الطفل ، هذا صحيح.