簡體   English   中英

子女和父母階級財產

[英]Child and parent class property

我有一個名為Parent的類和一個繼承Parent類的Child類。 Parent類有一個屬性filename與值testfile 。在第一步,我改變這個特性,例如價值anothertestvalueParenttestFileame method.Then我嘗試調用方法logChild類和這個方法試圖獲取filename物業Parent班。

class Parent {
     public $filename = 'filename';

     public function  setFilename() {
          $this->filename = 'anotherfilename'
     }

     public function log($message, $this->filename) {
          //here filename from Child class has value 'filename' but I expect 'anotherfilename'
     }
}

class Child extends Parent {
    $this->log("somemessage");
}

我希望獲得另一個anothertestvalue值,但方法使用testfile 。有人可以解釋會發生什么嗎?

我認為您誤解了CLASS和INSTANCE的概念。 您應該有一個子類的實例,該實例調用setFilename。

class MyParent {
    private $filename = 'filename';

    public function setFilename($name) {
        $this->filename = $name;
    }

    public function log($message) {
        //here filename from Child class has value 'filename' but I expect 'anotherfilename'
        print $this->filename;
    }
 }

 class MyChild extends MyParent {
    //...
 }

 $child = new MyChild();
 $child->setFilename("anotherfilename");
 $child->log("somemessage"); // print "anotherfilename"

此處有更多詳細信息: http : //www.php.net/manual/zh/language.oop5.php

好吧,您沒有設置該值。 你剛才定義的方法,將設定的值,如果調用。

簡而言之,請調用方法setFilename() ,然后該值將更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM