> 백엔드 개발 > PHP 튜토리얼 > 面向对象的问题:为什么提示未定义呢?

面向对象的问题:为什么提示未定义呢?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-06 20:17:36
원래의
1327명이 탐색했습니다.

是不是因为没加this啊 我看别人说如果不加this则理解为方法内部的一个局部变量 这句话该怎么理解啊 是不是就不会报错了?那么为什么还会报错?我是新手 感觉面向对象很难

<code><?php class man{
   public $name=111;
   public function who(){
      echo $name;
   }
 }
$a=new man();
$a->who();


?></code>
로그인 후 복사
로그인 후 복사

回复内容:

是不是因为没加this啊 我看别人说如果不加this则理解为方法内部的一个局部变量 这句话该怎么理解啊 是不是就不会报错了?那么为什么还会报错?我是新手 感觉面向对象很难

<code><?php class man{
   public $name=111;
   public function who(){
      echo $name;
   }
 }
$a=new man();
$a->who();


?></code>
로그인 후 복사
로그인 후 복사

没加 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,那么就访问了该类的属性。

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿