I'm not quite sure that this question is on topic, however:
You have to understand what each variable definition is and what it means for the accesibility of that variable.
Say your class definition is as follows:
class MyTestClass {
const URL = 'http://www.example.org';
private static $MY_ARRAY = array('...');
}
And in the future you write another class that extends that class and it wants to update URL as below:
class SomeOtherClass extends MyTestClass {
public __construct(){
$this->URL = "http://www.someothersite.com";
}
}
Now, if you never want URL to change, then that's fine. A better way to write MyTestClass
however, would be:
class MyTestClass {
private $URL = 'http://www.example.org';
private $myArray = array();
}
Again however, if some class extends it, they won't be able to access the $URL
var. Also, stay away from static.