массивы — 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!" );
}
1

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

<?php

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

}

?>

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

1

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

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

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

или как это

class MyClass
{
public $variable = array("attribute" => "I'm a class property!");
}
1
По вопросам рекламы [email protected]