php构造类时 "$this->_age = $age;"是什么作用?
极客学院的PHP教程里老师的所谓讲解就是念一遍自己写的代码,完全无语了。自己百度下大概明白了$this的作用,但还是不明白红框的语句。请问前辈:1,红框当中的语句作用是什...
极客学院的PHP教程里老师的所谓讲解就是念一遍自己写的代码,完全无语了。自己百度下大概明白了$this的作用,但还是不明白红框的语句。
请问前辈:
1,红框当中的语句作用是什么?
2,$this->_age的下划线作用是什么?如果不加下划线会怎样?(我看到网上有些例子不加下划线的) 展开
请问前辈:
1,红框当中的语句作用是什么?
2,$this->_age的下划线作用是什么?如果不加下划线会怎样?(我看到网上有些例子不加下划线的) 展开
推荐于2016-11-06
展开全部
我是题主的小号,这个问题还是我自己回答好了。
1.
红框中“$this->_age"这个整体是一个变量,表示具体的一个Man的一个属性,跟$age没啥关系。
比如定义个人
$Yancey = newMan(25,'Yancey');
那么 $this->_age 就是指这个实例Yancey的一个属性(所谓属性就是表示这个对象的特征一个变量,比如一个人的年龄),你可以命名为$this->_age或者$this->_nianji或者$this->_daxiao,随便你怎么命名的。但是你如果要声明这个变量呢,得声明$this->后面那截,也就是图中的 private $_age,$_name;
而 $this->_age = $age; 就是把$age这个变量的值赋给$this->_age这个属性的。$age是哪儿来的呢?就是创建一个Man()时括号里输入的那个$age。
2.
网上都说变量前的下划线表示私有,但我发现这貌似只是习惯用法, 并不具有语法作用。如果保留private $_age,$name; 在定义$Yancey = newMan(25,'Yancey');后 echo $Yancey->_age; 运行,显示Fatal error,因为私有属性不能用于实例。
如果删掉private $_age,$name; 在定义$Yancey = newMan(25,'Yancey');后 echo $Yancey->_age; 运行,完全没问题。
最后还是忍不住黑一下那个所谓极客学院首席布道师ime: 呸,骗子!
奉劝大家别买他的课,开始很简单的问题讲得那么详细,后来复杂的问题反而不讲。
1.
红框中“$this->_age"这个整体是一个变量,表示具体的一个Man的一个属性,跟$age没啥关系。
比如定义个人
$Yancey = newMan(25,'Yancey');
那么 $this->_age 就是指这个实例Yancey的一个属性(所谓属性就是表示这个对象的特征一个变量,比如一个人的年龄),你可以命名为$this->_age或者$this->_nianji或者$this->_daxiao,随便你怎么命名的。但是你如果要声明这个变量呢,得声明$this->后面那截,也就是图中的 private $_age,$_name;
而 $this->_age = $age; 就是把$age这个变量的值赋给$this->_age这个属性的。$age是哪儿来的呢?就是创建一个Man()时括号里输入的那个$age。
2.
网上都说变量前的下划线表示私有,但我发现这貌似只是习惯用法, 并不具有语法作用。如果保留private $_age,$name; 在定义$Yancey = newMan(25,'Yancey');后 echo $Yancey->_age; 运行,显示Fatal error,因为私有属性不能用于实例。
如果删掉private $_age,$name; 在定义$Yancey = newMan(25,'Yancey');后 echo $Yancey->_age; 运行,完全没问题。
最后还是忍不住黑一下那个所谓极客学院首席布道师ime: 呸,骗子!
奉劝大家别买他的课,开始很简单的问题讲得那么详细,后来复杂的问题反而不讲。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询