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!");
}