Ստատիկ մեթոդներ և $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();
?>