公共函数中声明的变量显示未定义

时间:2014-04-14 04:58:30

标签: php

我这里有一个超级简单的脚本,但是我一直在变量未定义,作为警告,提示我如何让这个脚本无误地运行并做同样的事情。

 class person{
          public $integer=4; 
          public $name;
          public function __construct($name){
             $this->name = $name;
          }
          public function pre(){
              return "pre message";
          }
          public function after($name){
              return "post message".$name;
          }
        };
        $person1 = new person($name="jason");
        $person2 = new person($name="bourne");
        echo $person1->pre();
        echo $person2->after();

5 个答案:

答案 0 :(得分:3)

您将对象设置为$person1$person2,但将其称为$dog1$dog2

答案 1 :(得分:0)

我认为你想构建你刚刚传递所需参数的新对象,而不是分配:

    $person1 = new person("jason");
    $person2 = new person("bourne");

答案 2 :(得分:0)

您没有将任何参数传递给after中的$dog2->after();。因此,$name在该方法中未定义。如果要使用类属性$name,请在那里使用$this->name

此外,正如@MichaelKing指出的那样,您指的是$dog1$dog2,但将变量设置为$person1$person2

答案 3 :(得分:0)

您将对象设置为$ person1和$ person2,这意味着 你必须像使用它一样     echo $ person1-> pre();     echo $ person2-> after();

答案 4 :(得分:0)

您可以为person$person1创建班级$person2的对象。但是您使用$dog1$dog2来调用函数,这些函数未声明或定义。