Статикалық әдістер және $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();
?>