Upon testing a client site, I found that the host they use currently has php 5.2.
When writing php classes how should the code be treated to avoid problems in the future when going from “->” to “::” notation?
Upon testing a client site, I found that the host they use currently has php 5.2.
When writing php classes how should the code be treated to avoid problems in the future when going from “->” to “::” notation?
You do not need to worry about “->” and “::”, they are two completely different things.
“->” is used to access properties and methods of an instantiated object and “::” is used to access properties and methods of a static class. The way those are used will not change in the next versions.
# REGULAR CLASS:
class regularClass {
public $foo = 'bar';
}
$obj = new regularClass();
echo $obj->foo; // outputs bar
# STATIC CLASS:
class staticClass {
public static $foo = 'bar';
}
echo staticClass::$foo; // outputs bar
# MIXED CLASS
class mixedClass {
public static $static_foo = 'bar';
public $regular_foo = 'bar';
}
$obj = new mixedClass();
echo $obj->regular_foo; // outputs bar
echo mixedClass::$static_foo; // outputs bar
JV, thank you for your answer. It helps to clear the misconception that I was thinking about.