2014-05-08 121 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-你应该使用$这给他们打电话的功能