1
<?php

class MyClass
{
    public $prop1 = "I'm a class property!";

    public function __construct()
    {
        echo 'The class "', __CLASS__, '" was initiated!<br />';
    }

    public function __destruct()
    {
        echo 'The class "', __CLASS__, '" was destroyed.<br />';
    }

    public function __toString()
    {
        echo "Using the toString method: ";
        return $this->getProperty();
    }

    public function setProperty($newval)
    {
        $this->prop1 = $newval;
    }

    public function getProperty()
    {
        return $this->prop1 . "<br />";
    }
}

class MyOtherClass extends MyClass
{
    public function __construct()
    {
        parent::__construct(); // Call the parent class's constructor
        $this->newSubClass();
    }

    public function newSubClass()
    {
        echo "From a new subClass " . __CLASS__ . ".<br />";
    }
}

// Create a new object
$newobj = new MyOtherClass;


?>

質問:

に変更$this->newSubClass();するとself::newSubClass();、それも機能するので、使用する$this->newSubClass();必要がある場合は使用する必要があり、使用する必要がある場合はself::newSubClass();

4

2 に答える 2

1

オブジェクトのインスタンスメンバーにアクセスするために使用されている場合、私が知っていることから、静的メンバーにもアクセスできますが、そのような使用はお勧めできませ->ん。$this->newSubClass();

::通常、この記号はself::newSubClass();静的メンバーへのアクセスに使用されますが、一般に、この記号はスコープ解決::に使用でき、左側にクラス名、親、自己、または (PHP 5.3 では) 静的のいずれかを持つことができます。

于 2013-08-21T03:05:56.260 に答える