2013-04-16 4 views
0

У меня возникла следующая проблема.Нужно вызывать статические атрибуты «динамически» на PHP

Внутри моего Баннер класса у меня есть:

public static $flag_status = array(
           'Unpublished' 
          , 'Published' 
         ); 

Из класса Знамени, у меня есть массив, который содержит значение «flag_status», который представляет собой атрибут класса Знамени.

Давайте предположим, что я получаю это значение из массива и хранения на переменную, как это:

$name_attr = 'flag_status'; 

Мне нужно позвонить:

Banner::$name_attr; 

И он должен вернуть то же самое, телефон:

Banner::$flag_status; 

Это можно сделать?

ответ

1

Используйте два знака доллара:

Banner::$$name_attr; 

Пример:

class Foo { 
    public static $flag_status = array('foo', 'bar'); 
} 

$name_attr = 'flag_status'; 

print_r(Foo::$$name_attr); 

Производит:

Array 
(
    [0] => foo 
    [1] => bar 
) 
+0

Спасибо! Я пробовал это, но это не сработало, потому что у него было пространство перед строкой, но теперь это работает! Благодаря! – Mateusgf

+1

Если это сработало для вас, отметьте его как правильно, чтобы другие знали :-) – leftclickben

+0

Хорошо! Сделано :) Бог благословит вас! – Mateusgf

Смежные вопросы