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!

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

Ответы

Ответ 1

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

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();

Ответ 2

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

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

Ответ 3

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

<?php

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

}

?>

HOpe это поможет вам

Ответ 4

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

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

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

или как это

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