Στατικές μέθοδοι και $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();
?>