Statiskās metodes un $this OOP PHP
Statisko metožu iekšienē nav pieejams $this.
Tas notiek tāpēc, ka statiskās metodes
var tikt izsauktas ārpus objekta konteksta,
vienkārši pievēršoties klases vārdam.
Parastajās metodēs ir pieejamas gan statiskās, gan parastās īpašības un metodes.
Apskatīsimies piemēros. Piemērs ar parasto metodi:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // izvadīs 'static'
echo $this->usualProperty; // izvadīs 'usual'
}
}
$test = new Test;
$test->method();
?>
Piemērs ar statisko metodi:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // izvadīs 'static'
echo $this->usualProperty; // izdos kļūdu
}
}
$test = new Test;
$test::method();
?>