У меня проблема, которая кажется, что это не должно быть проблемой... На самом деле я чувствую себя глупо, что не знаю этого, но я делаю это, чтобы смотреть на тот же код слишком долго.
Я объявляю некоторые стандартные переменные в моем классе ООП, которые должны помочь мне сохранить небольшое пространство в других переменных, но я получаю ошибку T_VARIABLE. Есть ли другой способ сделать это? Благодарю!
private $default_struc = array(
"attributes" => array(
"label" => "",
"id" => "",
"title" => "",
"class" => "",
"required" => "",
"rel" => ""
), #end attributes
"properties" => array(
"disabled" => false
) #end properties
);
private $input_struc = array(
$this -> default_struc
);
Ваша проблема здесь:
private $input_struc = array(
$this -> default_struc
);
Вы можете просто назначить прямое значение, а не значение, хранящееся в другом var или возвращенное из функции/метода, или конкатенированное,... Посмотрите на php docs, там вы найдете много примеров, где вы можете увидеть, что работает или нет
Для этого вы можете реализовать метод getter. Ниже приведен пример того, как это могло бы выглядеть:
// if you are using this only IN the class, you can keep it private
private function getInputStruc() {
return array_merge(
$this->default_struc,
array(
/*something*/
)
);
}
Поэтому, прочитав документы PHP, я решил проблему. Я не знаю, лучшее ли это решение, но здесь оно на случай, если оно поможет кому-то еще.
private $default_struc = array(
"attributes" => array(
"label" => "",
"id" => "",
"title" => "",
"class" => "",
"required" => "",
"rel" => ""
), #end attributes
"properties" => array(
"disabled" => false
) #end properties
);
private $input_struc = array();
Поскольку это класс, я использовал свой __construct
чтобы сделать это, как я хотел.
function __construct($title, $action = "", $name = "", $rel = ""){
$this -> input_struc = array_merge($this -> default_struc, $this -> input_struc);
$this -> input_struc['attributes']['type'] = "";
$this -> input_struc['attributes']['value'] = "";