الدالة get_class_vars()‎‎ في PHP

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث

(PHP 4, PHP 5, PHP 7)

تُعيد الدالّة get_class_vars()‎‎‎‎ الخصائص الافتراضية للصنف.

الوصف

array get_class_vars ( string $class_name )

تُعيد الدالّة get_class_vars()‎‎‎‎ الخصائص الافتراضية للصنف المُمرّر إليها.

المعاملات

class_name

اسم الصف المراد الحصول على الخصائص الافتراضية له.

القيم المعادة

تُعيد الدالّة get_class_vars()‎‎ مصفوفة ترابطية من الخصائص المصرّح عنها المرئية في النطاق الحالي، مع قيمها الافتراضية. تكون عناصر المصفوفة الناتجة على الشكل التالي: اسم الخاصية => القيمة (varname => value). وتُعيد FALSE في حال وجود خطأ.

سجل التغييرات

الإصدار الوصف
5.0.3 ستُعيد الدالة get_class_vars()‎ الخصائص التي يمكن الوصول إليها من النطاق الحالي فقط.
5.0.2 سيعرض استخدام الدالة get_class_vars()‎ الآن مصفوفة مؤلفة من كل الخصائص، على خلاف السلوك السابق حيث كانت الخصائص المحميّة والخاصّة مسبوقة ببايتات nul.
5.0.1 سيعرض استدعاء الدالة get_class_vars()‎ كل الخصائص، كما هو الحال عند تحويل كائن إلى صنف.

أمثلة

المثال 1: مثال عن استخدام الدالّة get_class_vars()‎

<?php
class myclass {
    var $var1; //ليس له قيمة افتراضية
    var $var2 = "xyz";
    var $var3 = 100;
    private $var4;

    //باني
    function __construct() {
        //تغيير بعض الخصائص
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }
}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}
?>

ينتج عن المثال السابق مايلي:

var1 :
var2 : xyz
var3 : 100

المثال 2: مثال عن استخدام الدالة get_class_vars()‎ واختلاف سلوكها حسب النطاق (scope) الذي استدعيت فيه

<?php
function format($array)
{
    return implode('|', array_keys($array)) . "\r\n";
}

class TestCase
{
    public $a    = 1;
    protected $b = 2;
    private $c   = 3;

    public static function expose()
    {
        echo format(get_class_vars(__CLASS__));
    }
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

ينتج عن المثال السابق ما يلي:

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

انظر أيضًا

  • الدالة get_object_vars()‎: الحصول على خصائص الكائن المُمرّر.
  • الدالة get_class_methods(): إعادة أسماء الدوال التابعة للصنف.

مصادر