As I understand this, in PHP4 my code was buggy, but not in PHP7, right?
Not quite. PHP4-style constructors still work on PHP7, they are just been deprecated and they will trigger a Deprecated warning.
What you can do is define a __construct
method, even an empty one, so that the php4-constructor method won’t be called on a newly-created instance of the class.
class foo
{
public function __construct()
{
// Constructor's functionality here, if you have any.
}
public function foo()
{
// PHP4-style constructor.
// This will NOT be invoked, unless a sub-class that extends `foo` calls it.
// In that case, call the new-style constructor to keep compatibility.
self::__construct();
}
}
new foo();
It worked with older PHP versions simply because constructors don’t get return value. Every time you created a Participant instance, you implicitly call the participant
method, that’s all.