2013-06-19 123 views
0

我目前在Codecademy上學習PHP,在課堂上遇到一個錯誤,我不知道爲什麼。我得到這個錯誤Undefined variable: name (line 21)Woof, woof! !PHP中未定義的變量與類

這裏是我的代碼:

<?php 
    class Dog { 
     public $numLegs = 4; 
     public $name; 
     public function __construct($name){ 
      $this->name = $name; 
     } 
     public function bark(){ 
      return "Woof!"; 
     } 
     public function greet(){ 
      return "Woof, woof! ".$name."!"; 
     } 
    } 
    $dog1 = new Dog("Barker"); 
    $dog2 = new Dog("Amigo"); 
    $dog1->bark(); 
    echo $dog2->greet(); 
?> 

它在這一課http://www.codecademy.com/courses/web-beginner-en-ZQQ64/0/8#。謝謝你的幫助。 :)

+1

這是一個範圍的問題 - '$中的name'迎接'()'函數是一個局部變量,這是沒有定義的;因此警告。您可能需要'$ this-> name' – andrewsi

回答

3

它告訴你 - 在第21行,$name沒有定義。你的意思是$this->name

6

爲了引用類字段,您需要使用$this->來限定字段名稱。所以這條線:

return "Woof, woof! ".$name."!"; 

應該是這樣的:

return "Woof, woof! ".$this->name."!";