PHP变量未定义

时间:2014-05-08 12:06:31

标签: php

<?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();

?>

这里变量是在本地声明的,然后是通过object设置的变量值,之后我调用它在结果屏幕中显示未定义的函数。

4 个答案:

答案 0 :(得分: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();

?>

答案 1 :(得分:1)

这是因为您的函数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。

答案 2 :(得分:0)

您需要使用$this来引用课程&#39;自己的属性。要获得您想要的行为,请将您的类更改为:

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

答案 3 :(得分:0)

1-你的变量是在函数内定义的,而不是类!

2-他们应该被宣布为公共(以及功能)

3-您应该使用$ this在函数

中调用它们