Statične metode in $this v OOP v PHP
Znotraj statičnih metod $this ni na voljo.
To se zgodi, ker se lahko statične metode
kličejo zunaj konteksta objekta,
preprosto z dostopom do imena razreda.
V običajnih metodah so dostopne tako statične kot tudi običajne lastnosti in metode.
Poglejmo si primere. Primer običajne metode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // izpiše 'static'
echo $this->usualProperty; // izpiše 'usual'
}
}
$test = new Test;
$test->method();
?>
Primer statične metode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // izpiše 'static'
echo $this->usualProperty; // bo povzročilo napako
}
}
$test = new Test;
$test::method();
?>