php предваряет переменную данными из другой переменной

1

У меня проблема, которая кажется, что это не должно быть проблемой... На самом деле я чувствую себя глупо, что не знаю этого, но я делаю это, чтобы смотреть на тот же код слишком долго.

Я объявляю некоторые стандартные переменные в моем классе ООП, которые должны помочь мне сохранить небольшое пространство в других переменных, но я получаю ошибку 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
);
Теги:

2 ответа

1
Лучший ответ

Ваша проблема здесь:

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*/
        )
    );
}
  • 0
    Спасибо за информацию. Я прочитал документы, и так как я никогда не пытался реализовать это раньше, я не знал об этом. Я исправил это с небольшой помощью моей конструкции. Еще раз спасибо!
  • 0
    пожалуйста :)
1

Поэтому, прочитав документы 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'] = "";
  • 0
    рад что вы нашли решение :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню