#php #arrays #class #variables
#php #массивы #класс #переменные
Вопрос:
я хотел бы получить доступ к переменной, которая находится в классе (не как экземпляр класса), например
class myclas
{
private $list=array('1','2','3');
[...]
}
Мне нужно получить доступ к значениям $ list таким образом: myclass::$list (ведьма не возможна).
Есть ли альтернативный способ?
Спасибо.
//Редактировать: Спасибо всем за ответ! Возможно ли использовать закрытую переменную в качестве значений для общедоступной?
class myclas
{
private $_list=array('1','2','3');
public static $staticList=$_list;
[...]
}
Прямо сейчас я получаю сообщение об ошибке «неожиданный T_VARIABLE»
Комментарии:
1. Вместо создания общедоступной переменной, которая считывает данные из частной, создайте общедоступную функцию statc, которая считывает данные из частной переменной. Затем вы вызываете функцию: myclass::myfunction()
Ответ №1:
class myclas
{
public static $list=array('1','2','3');
}
myClass::$list;
Комментарии:
1. если вы хотите ограничить доступ к переменной, сделайте ее закрытой и создайте статический метод, подобный public static getList() { return self::$list; }
Ответ №2:
Смотрите это прекрасное руководство: http://php.net/manual/en/language.variables.scope.php
Ответ №3:
Это частная переменная. Если вы сделали ее общедоступной статической переменной, вы должны иметь к ней доступ:
class myclas {
public static $list = array('1','2','3');
}
myclas::$list;
Комментарии:
1. Если вы хотите сохранить свою переменную закрытой, вы можете написать общедоступную статическую функцию для извлечения значений и их возврата. Это может сделать то, что вы хотите.
Ответ №4:
Она должна быть объявлена как статическая.
Пример:
class MyClass {
public static $var = 'foo';
}
Затем для доступа: MyClass::$var;
Ответ №5:
Для вашего редактирования смотрите это другое красивое руководство о классах и видимости:
Комментарии:
1. спасибо вам за все эти прекрасные ссылки. Эту я все еще знаю. Но я не смог спроецировать это руководство на свои проблемы… итак, я рад найти здесь некоторую помощь.