PHP أسماء جميع الطبقات أعلن المعرض؟
-
03-07-2019 - |
سؤال
ودعونا نقول لدي هذا الرمز:
<?php
class hello {
var $greeting = "hello";
function hello(){
echo $this->greeting;
return;
}
}
$hello1 = new hello;
$hello2 = new hello;
$hello4 = new hello;
?>
وكيف أحصل عليه أن أردد كل أسماء الأشياء مثيل (وإذا أمكن الطبقة منهما)، بحيث صدى (ربما في مجموعة) "hello1 => مرحبا، hello2 => مرحبا، hello4 => مرحبا ".
إذا لم يكن ذلك ممكنا، هل هناك أي طريقة لمعرفة اسم مثيل من داخل الصف، شيء من هذا القبيل صدى INSTANCE_NAME ($ هذا)؛ سوف يحصل لي "hello1". شكرا.
المحلول
هل يمكن تسمية get_defined_vars
للحصول على مجموعة واسعة من كافة الكائنات الحاضر، ومن ثم استخدام get_class
للحصول على أسماء فئة لكل واحد (رمز لم تختبر، ولكن ينبغي لها أن تعمل):
$vars = array();
foreach (get_defined_vars() as $var) {
$vars[$var] = get_class($var);
}
ولمعلوماتك، ما تسمونه "الطبقة أعلن" من المعروف أكثر كذلك "الكائن".
والسؤال الثاني الخاص بك هو غير ممكن. خذ على سبيل المثال:
$hello1 = $hello2 = new hello();
والآن، إذا أدعو instance_name
، يجب أن يعود "hello1 'أو' hello2؟
لا تنتمي إلى StackOverflow