php 后知后觉

1.$this :动态调用,指当前对象

通过一个例子,说明一下我当时的心理历程:

/**
* 父类
*/
class A
{

	function show()
	{
		echo $this->msg();
	}

	function msg(){
		return "";
	}

}

这是父类,里面有两个方法, 我看到了show调用了msg,msg里面不是没有东西吗?这有什么意思? 是不是**啊?  (→_→)

然后再写了他的一个子类:

/**
* A的子类之一
*/
class B extends A
{

	function msg()
	{
		return "this is child";
	}
}

$b_obj=new B;
echo $b_obj->show();

根据查看的项目里A类的子类,我发现在A的子类里都会重写A类的msg()方法,最终调用的还是子类自己的方法。 产生这个问题的原因就是 我没理解  $this 的 真正意义。

通过上面的输出,在页面上可以看到结果:这是子类的输出。

在A类的show方法里 var_dump($this);  结果是: object(B)#1 (0) { }    也就是说 实例化B 调用show方法,根据继承关系 会找到A类里的show 方法,

$this是动态调用,$this指当前对象,这个时候的当前对象不一定就是A类的实例化对象啊,这时候的$this 是B类的实例化对象。

然后$this->msg();就等于是B类的实例化对象调用自己的msg方法。

如果A类里show 方法这样写 echo A::msg();   那么就是写死的调用,就是调用A类自己的方法。

弄明白了这个,真的觉得自己是菜的难受啊......  \(-_-||)/

2017-7-10   在菜的道路上,控制不住记几,越走越远......

时间: 2024-10-10 15:49:56

php 后知后觉的相关文章

【后知后觉】AJAX核心对象——XMLHttpRequest

自从把AJAX学了之后,就是在云里雾里飘着,想总结,却无从下手,就一直拖到现在.最近看DRP,王勇老师简单的讲了AJAX,对这个又是技术又是技巧的东西做了再一次的解,感觉自己稍微理解了一些.现将我现在理解的分享下. 首先什么是AJAX呢? AJAX简介: AJAX这个名词最早是由Jesse James Garrett提出的,当时给出的解释是:Asynchronous JavaScript And XML,虽然当时Jesse James Garrett也曾发表文章介绍这个技术,但是真正被人们所熟知

话说盘古开天,鸿蒙初判……咳咳,一个后知后觉的码农开始写博客了

虽然读的是IT相关专业,但是本科一直比较浪,技术水平渣渣一个,拼了大三一年,最后靠着运气侥幸读了研才发现自己要弥补的东西实在是太多了…… 大学时各种课设项目,没有百度和学长的火炬我是走不到今天的,而且一个本校学姐(现在好像在墨尔本联培吧)的博客帮助了我很多,到如今自己成了一名研究僧,虽说技术水平仍然很渣渣,但是也要做一个要有梦想的技术渣,所以开了这个博客(太后知后觉了QAQ....),记录自己读研期间的经历与点滴,当然如果能通过分享自己的错误让别人有所收获,那也必然是极好的事情了. 目前研究方向

五年,后知后觉

很久很久没写博文了,虽然感觉自己每天都在忙碌中度过,但一段时间后总结感觉自己还是碌碌无为,在这种碌碌无为的感觉中浑然不觉得就过了5年. 5年,1825天!说长不长,说短也不短. 大多数人最黄金的5年是25-30岁,一方面职业发展处在上升期,另一方面也面临着买房.结婚.生子的各种生活压力. 在一家公司待满5年后,公司顺理成章的从微小公司成长为小公司,期间也体会过各种酸甜苦辣与成长的烦恼,难免出现迷茫.疲惫与厌倦,却又无可奈何. 在奔三之后,父母渐渐老去,儿子进入学龄期,IT行业长期的快节奏.高强度

那些我后知后觉的事

在高三的冲刺阶段,有人向老师请教,我们该怎样复习,才能考个好成绩,我正好路过,我记得老师的回答是系统的对知识进行梳理.但当时,我还只会不停的做题.结果读了二本大学,差一本25分. 大学的每一次考试,我都系统的把学过的知识从头到尾复习一到三遍,而不重做题的数量.因为我知道考试都不难,有些还是原题.关键是我要理解原理,知步骤,算对就可以了.因此每一次考试我的成绩都很好. 大学毕业找工作,因为不知道用人单位要怎样去选拔人才.就这样盲目投简历,盲目参加宣讲会,盲目去面试,结果是笔试的题目都不会.但其实早

后知后觉也不错

昨天在家点了些艾条熏,这两天睡的和死猪一样,不知道这玩意是不是有催眠的效果,今天想爬山,没想到下雨,饭点了有些饿,没有心情看电视,看书,随便写点东西吧,写写最近自己的一些心得,总的来说,自己的确是有一些进步了,领悟了一些可能正确的东西,细想想,这些所谓正确的东西,应该是在很多年前就应该知晓的,那样的话自己的现状应该会好一些吧,好在,晚,总比没有好,这几年总算是慢慢认清了自己,这是第一步,认识不了自己生活永远是被动的,然后是认识了这个世界的一些客观规律,这些个规律在很多方面是共通的,比如前两天打球

[转] ASP.NET WEB API程序在VS启动或发布到IIS后启动后发生 - Could not load file or assembly 'System.Web.Http.WebHost’异常,无法正常访问

Just do Copy Local = true in the properties for the assembly(System.Web.Http.WebHost) and then do a redeploy, it should work fine. http://stackoverflow.com/questions/20323107/could-not-load-file-or-assembly-system-web-http-webhost-after-published-to-

从首届淘宝造物节发现五大85后90后商业趋势

2016年7月22日-24日,首届"淘宝造物节"在上海举行.令人惊讶的是,本届"淘宝造物节"首日门票销售一空.关于本次"淘宝造物节"背后的逻辑,笔者已经在<淘宝重启创新:新技术.新青年.新文化>一文中做了详尽的解读.然而,在亲身参观了"淘宝造物节"现场后,却又不得不感慨新一代消费文化趋势不可不察. 趋势一:二次元文化崛起 (二次元领衔2016淘宝造物节) 首先,二次元势力不容小觑.首届"淘宝造物节&quo

数据结构已知后序和中序画出该树

已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?麻烦再画下这二叉树. 后续遍历的顺序是左右根,中序遍历的顺序是左根右 这点应该懂吧 由后续访问序列可以看出最后一个被访问的必定是这个树的根 而中序遍历的序列可以看出,一棵树当根确定后,在根前面被访问的是他的左子树,后边的是他的右子树元素 弄懂了上边两点就开始做题吧 由后序遍历序列是DBCEFGHA 为了方便,我写小写字母了啊 可以看出整棵树的根节点是a 再看中序遍历序列EDCBAHFG a是根节点 左子

温故而后知新——对ado.net中常用对象的一些解释

在使用ado.net连接数据库获取数据,一般的步骤是: 1.设置好web.config    //用来设置服务器数据库的地址以及登录名密码 2.创建Connection对象    //用来创建访问数据库的连接 3.创建Command对象    //用来发送命令(写sql语句) 4.用DataReader获取数据    //获取数据库数据 5.利用DataSet储存获取到的数据    //容器 6.关闭Connection对象和DataReader/DataAdapter的连接  //为了性能,不