php构造类时 "$this->_age = $age;"是什么作用?

极客学院的PHP教程里老师的所谓讲解就是念一遍自己写的代码,完全无语了。自己百度下大概明白了$this的作用,但还是不明白红框的语句。请问前辈:1,红框当中的语句作用是什... 极客学院的PHP教程里老师的所谓讲解就是念一遍自己写的代码,完全无语了。自己百度下大概明白了$this的作用,但还是不明白红框的语句。
请问前辈:
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: 呸,骗子!
奉劝大家别买他的课,开始很简单的问题讲得那么详细,后来复杂的问题反而不讲。
ningploy
2015-07-21 · TA获得超过755个赞
知道小有建树答主
回答量:717
采纳率:77%
帮助的人:484万
展开全部
  1. 实例化的时候给对象属性赋值

    • $p=new Man(22,"hehe");  就是把参数赋值到对象的属性上

  2. 属性的命名使用驼峰法,首字母小写或者使用下划线”_”,如$username,$_instance,通常下划线开头的属性属于私有属性;  

    • 在这里声明的私有private属性   就用_开头了


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式