面向对象的问题:为什么提示未定义呢?
程序员文章站
2022-04-29 13:14:36
...
是不是因为没加this啊 我看别人说如果不加this则理解为方法内部的一个局部变量 这句话该怎么理解啊 是不是就不会报错了?那么为什么还会报错?我是新手 感觉面向对象很难
who();
?>
回复内容:
是不是因为没加this啊 我看别人说如果不加this则理解为方法内部的一个局部变量 这句话该怎么理解啊 是不是就不会报错了?那么为什么还会报错?我是新手 感觉面向对象很难
who();
?>
没加 this 可以识别为类变量那是 Java 的规则。在 php 中使用类变量必须前缀 this 。
1、who 方法里面的 $name 确实是一个未定义的变量,你可以用isset($name)来判断该变量的值是否设置。
2、who 方法里面的 $name不加$this, 但$name 必须初始化!!!如 $name = 'zhangsan';echo $name;那么$name就是 who方法里面的局部变量
3、who方法里面加了$this,即 echo $this->name,那么就访问了该类的属性。