2017-07-02 7 views
-1

誰も私のキャラクターの統計情報が印刷されない理由を教えてもらえますか?私はエラーや構文メッセージを取得していません。なぜ私の変数は印刷されませんか? PHP

これは私の最初のPHPプロジェクトです。私は何が欠けているのか分からない!

<? 
    class character{ 
     public $healthpoints = 100; 
     public $isdead = false; 
     public $class = "Mage"; 
     public $level = 10; 
    } 


    function checkdeath() { 
    if($healthpoints >= 0){ 
     $isdead = true; 
     } 
    } 

    new character(); 

    function CharStats() { 
     echo $healthpoints; 
     echo $isdead; 
     echo $class; 
     echo $level; 
    } 

    CharStats; 


    ?> 
+0

この可変スコープの問題 - http://php.net/manual/en/language.variables.scope.php。あなたのクラス変数はあなたの関数の範囲にはありません。簡単な解決策はクラスメソッドとしてクラスに関数を追加することです – Sean

+0

エラーメッセージの読み込みから始めます:https://3v4l.org/he30R – hakre

答えて

2

私が欠けているかを把握することはできません!

思考、クラス/オブジェクト/などについてもう一度読むALL

class Character{ 
    public $healthpoints = 100; 
    public $isdead = false; 
    public $class = "Mage"; 
    public $level = 10; 

    function checkdeath() { 
     if($this->healthpoints >= 0){ 
     $this->isdead = true; 
     } 
    } 

    function CharStats() { 
     echo $this->healthpoints; 
     echo $this->$isdead; 
     echo $this->$class; 
     echo $this->$level; 
    } 

} 

$character = new Character(); 
$character->ChatStats(); 

。 - Classes and Objects in PHP

+0

クラスメソッドは何もエコーしません。おそらく範囲外ですが、sttringを返してから__toString()でプロキシした後、オブジェクト変数をエコーすると適切なものになるかもしれません。 – hakre

+0

優れています。私は$ isdeadを今やyesまたはnoの文字列に変更しました。 – DragonKyn

関連する問題