<?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();
?>
这里变量是局部声明的,当变量的值通过对象设置,之后我调用函数,它在结果屏幕中显示未定义
这不是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();
?>
这是因为您的函数sam()
没有引用您在之前声明的变量作为对象的变量。相反,它echo
是您刚刚在函数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。
您需要使用$this
来引用类自己的属性。要获得想要的行为,将类更改为如下所示:
class roxy
{
public $name;
public $class;
public $age;
public function sam()
{
echo $this->name;
echo $this->class;
echo $this->age;
}
}
1-您的变量是在函数而不是类中定义的!
2-它们应该被声明为public(以及函数)
3-你应该使用$this在函数