Статички методи и $this во ООП во PHP
Внатре во статичките методи не е достапен $this.
Ова се случува поради тоа што статичките методи
можат да се повикуваат надвор од контекстот на објектот,
едноставно со пристап до името на класата.
Во обичните методи се достапни и статичките, така и обичните својства и методи.
Ајде да погледнеме на примери. Пример за обичен метод:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // ќе испише 'static'
echo $this->usualProperty; // ќе испише 'usual'
}
}
$test = new Test;
$test->method();
?>
Пример за статички метод:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // ќе испише 'static'
echo $this->usualProperty; // ќе даде грешка
}
}
$test = new Test;
$test::method();
?>