Monday 24 October 2016

arrays - PHP 5.6.3 Parse error: syntax error, unexpected '[' in class



While I was creating a class in php, I experienced this error:



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


A simple example:




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

?>


I already had a look at Reference - What does this error mean in PHP? but this doesn't seem to fit to my case. The problem of all other existing Questions seem to rely to an old PHP Version. But I am using PHP 5.6.3!



What can I do? Am I just sightless?


Answer



You can't explicitly create a variable like that (array index). You'd have to do it like this:



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





Alternatively, you could do (as most people would), this:



class MyClass {
public $variable = array();

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

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...