სტატიკური მეთოდები და $this PHP-ის OOP-ში
სტატიკურ მეთოდებში $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();
?>