Статычныя метады і $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();
?>