PHP 5.6.3 Ошибка разбора: синтаксическая ошибка, неожиданное '[' в классе

Когда я создавал класс в php, я столкнулся с этой ошибкой:

Parse error: syntax error, unexpected '[', expecting ',' or ';' on line 5 

Простой пример:

<?php

class MyClass
{
  public $variable["attribute"] = "I'm a class property!";
}

?>

Я уже взглянул на ссылку - Что означает эта ошибка в PHP? но это не похоже на мой случай. Проблема всех других существующих Вопросов, похоже, связана со старой версией PHP. Но я использую PHP 5.6.3!

Что я могу сделать? Я просто не вижу?

4 ответа

Решение

Вы не можете явно создать такую ​​переменную (индекс массива). Вы должны сделать это так:

class MyClass {
    // you can use the short array syntax since you state you're using php version 5.6.3
    public $variable = [
        'attribute' => 'property'
    ];
}

В качестве альтернативы, вы можете сделать (как и большинство людей), это:

class MyClass {
    public $variable = array();

    function __construct(){
        $this->variable['attribute'] = 'property';
    }
}
// instantiate class
$class = new MyClass();

Вы не можете объявить учеников таким образом. Также вы не можете использовать выражения в объявлениях членов класса.

Есть два способа достичь того, что вы ищете:

class MyClass
{
    public $variable;
    function __construct()
    {
        $variable["attribute"] = "I'm a class property!";
    }
}

или как это

class MyClass
{
    public $variable = array("attribute" => "I'm a class property!");
}

Я думаю, вы должны объявить это так, как показано ниже:

class MyClass
{
   public $variable = array( "attribute" => "I'm a class property!" );
}

Сначала создайте массив. Используйте код ниже

<?php

class MyClass
{
public $variable = array("attribute"=>"I'm a class property!");

}

?>

Надеюсь, это поможет вам

Другие вопросы по тегам