Statiske metoder og $this i OOP i PHP
Inne i statiske metoder er $this utilgjengelig.
Dette skjer fordi statiske metoder
kan kalles utenfor konteksten av et objekt,
ved bare å referere til klassens navn.
I vanlige metoder er både statiske og vanlige egenskaper og metoder tilgjengelige.
La oss se på eksempler. Eksempel på en vanlig metode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // vil skrive ut 'static'
echo $this->usualProperty; // vil skrive ut 'usual'
}
}
$test = new Test;
$test->method();
?>
Eksempel på en statisk metode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // vil skrive ut 'static'
echo $this->usualProperty; // vil gi en feil
}
}
$test = new Test;
$test::method();
?>