In PHP 5.6:
When being inside a class we usually declare & call a public class variable like this:
class MyClass
{
/**
* @var int
*/
public $myVar = 0;
// call it in a public function:
public function myFunction()
{
return $this->myVar;
}
}
I call the function like this:
MyClass::myFunction();
In PHP 7.0 that code throws a fatal error:
Using $this when not in object context
After changing my PHP version back to 5.6 again, the error was gone.
Questions:
I have to admit that after reading the manual and changes from 5.6 to 7.0 I don't get it.
- How do we declare and call public class variables in PHP 7.0?
- How do we write this code to be compatible between 5.6 and 7.0?
Edit after comments:
So why then a static call on a non static method works in 5.6?