2014-05-08 163 views
-2
<?php 
class roxy 
{ 

    function sam() 
    { 
     $name; 
     $class; 
     $age; 
     echo $name; 
     echo $class; 
     echo $age; 
    } 

} 
$kush= new roxy(); 
$kush->name="sachin"; 
$kush->class=12; 
$kush->age=21; 
$kush->sam(); 

?> 

這裏的變量聲明爲localy,當變量的值通過object設置,之後我調用函數,它顯示了我在結果屏幕中未定義的值。PHP變量顯示爲undefined

+3

這裏面是不是OOP是如何工作的 – Daan

+0

請不要」回答這樣的問題。它沒有顯示嘗試的努力,OP顯然不瞭解PHP /編程的任何內容。 – Manu

回答

1

。相反,它echo s你剛定義的變量你的功能sam(),這是 - 當然 - 未定義。

這應該工作:

class Roxy { 
    public $name; 
    public $xclass; 
    public $age; 

    public function sam() { 
     echo $this -> name; 
     echo $this -> xclass; 
     echo $this -> age; 
    } 

} 

$kush= new Roxy(); 

$kush->name="sachin"; 
$kush->xclass=12; 
$kush->age=21; 

$kush->sam(); // > sachin > 12 > 21 

+ class是PHP保留關鍵字。你不應該使用它。例如,使用xclass。

+0

'class'不是一個保留的命名空間,它是一個保留的關鍵字。使用它作爲屬性並不是最好的想法,不夠公平,但如果你這樣做不會造成問題 –

+0

感謝關於'class'是一個保留關鍵字而不是保留名稱空間的提示。不過我認爲這不是一個好主意。 – Robin

+0

@EliasVanOotegem雖然「class」是一個保留關鍵字,但它仍然可以使用。這是我用PHP 5.4測試的。但正如你所說,這不是最好的想法,我同意。 –

5

這不是OOP是如何工作的:這裏是你想達到什麼樣的工作例如:

<?php 
class roxy 
{ 
    public $name; 
    public $class; 
    public $age; 

    public function sam() 
    { 
     echo $this->name; 
     echo $this->class; 
     echo $this->age; 
    } 

} 

$kush= new roxy(); 
$kush->name="sachin"; 
$kush->class=12; 
$kush->age=21; 
$kush->sam(); 

?> 
+0

thanx大安其工作.... – rock001

0

您需要使用$this指一類自己的屬性。爲了得到你想要改變你的類看起來像這樣的行爲:那是因爲你的函數sam()是不是指你之前已經聲明爲對象變量的變量

class roxy 
{ 
    public $name; 
    public $class; 
    public $age; 
    public function sam() 
    { 
     echo $this->name; 
     echo $this->class; 
     echo $this->age; 
    } 
} 
0

1-您的變量是在函數內部定義的,而不是類!

2 - 他們應該被聲明爲public(以及功能)

3-你應該使用$這給他們打電話的功能