welke is beter: foo of bar:
<?php
class FB {
static public $config;
public function foo() {
$config = static::$config;
}
public function bar() {
$config = $this::$config;
}
}
?>
Het verschil zit dus in de manier van het aanroepen van de statische property $config. In PHP < 5.3 kon dit met self::$config, maar omdat FB wel eens extensions zou kunnen hebben (zonder de overwrite van foo() of bar()), is self:: niet goed genoeg. Het kan (en kon al) daarom met $this::. Het kan nu ook met static::...
Het verschil tussen self::$config en $this::$config snap ik. is er een verschil tussen static::$config en $this::$config? Werkt het hetzelfde voor methoden (ipv properties)? Is een van de twee 'beter'? Waarom?
Ik vraag dit omdat het syntactically (syntaxelijk?) heel raar is. Onderstaande zijn allemaal geldig, maar doen niet perse iets anders:
ClassName::$prop // obviously niet dynamisch
$class::$prop // $class is een string
$obj::$prop // $obj is een object
ClassName::func()
$class::func() // idem string
$obj::func() // idem object
Dank
PS. Als je PHP >= 5.3 niet kent, hoef je niet te reageren (no offense).