2013-08-28 2 views
1

мне нужно определить постоянной массива в пределах класса, который должен быть использован статически (т.е. я не создавая экземпляр класса класс). Вот пример кода, который работает в PHP5, но не в PHP4:Как я могу определить массив внутри PHP области видимости класса в PHP4

class MyTest { 
    static $arr = array(100, 200); 
    function test() { 
     print_r(MyTest::$arr); 
    } 
} 

MyTest::test(); 

Как я могу изменить этот код, чтобы он работает в PHP4 (4.4.9-PL0-папуасских)?

Примечания:

  • Он должен работать в PHP4.
  • Мне нужно получить доступ к массиву предпочтительно статическим образом, не создавая экземпляр. Но это требование можно было бы отбросить.
  • Я не могу использовать GLOBALS, так как код должен работать в пределах phpunit unit-testing. При этом массив, определенный как GLOBAL в заголовке файла, не отображается в unittest.
  • Я хочу определить массив (содержащий постоянные значения) вне функции, которую он использует. Но если не существует другой возможности для решения моего вопроса, это требование также может быть отброшено.
+2

Любая специальная версия PHP4? –

+0

Если вы имеете в виду phpunit (т. Е. Модульные тесты) - зачем вообще использовать 'static'? Это затрудняет тестирование. –

+0

PHP 4.4.9-pl0-gentoo – Alex

ответ

2
class MyTest { 
    public function getArray() { 
     return array(100, 200); 
    } 
} 

Не очень, но вы можете просто вызвать MyTest::getArray() без создания экземпляра (или $this->getArray() внутри класса) для извлечения данных.

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

  • Нет связанных вопросов^_^