• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP中继承实例详解

php 搞代码 3年前 (2022-01-22) 12次浏览 已收录 0个评论

继承并不改变类的结构。而是表名了两个类之间存在着某种关系,使得其中的成员看起来像是在别的类中存在。

主要的语法流程是:但我们new一个对象时,会在数据区先开辟一个存储空间,然后将对象进行初始化。初始化时,先是在其对象所对应的类空间去找变量或者方法,当无法找到时,如果发现其有一个继承关系,则会接着去它的父类中寻找。因此,我们所说的继承并不改变累的结构,仅仅是在两个继承类之间多了一个继承的关系。(比如说重写操作:当子类和父类中有相同的方法名是,掉用函数,先找的是当前对象对应类中的方法,当找到后就不会继续寻找了。这时,我们看上去像是父类中的方法被覆盖了,这就是重写的概念)。

<?phpheader("Content-Type:text/html;charset=utf-8");Class A {	public $p1=1;	const c1=3;	static $d1=5;	private $e1=7;	function f1(){		echo "我是A中的方法!";	}}Class B extends A{	public $p2=2;	const c2=4;	static $d1=6;	private $e2=8;	function f1(){		echo "我是B中的方法!".$this->e1;		echo "我是B中的方法!".$this->e2;	}}$o1=new B();var_dump($o1);echo "<br/>";$o1->f1();echo "<br/>";A::f1();//此处不建议这么写,这是不严格的语法。echo "<br/>";?>

注意:var_dump($o1)中有变量e1的值,并且标明了“ ["e1":"A":private]=> int(7)”,这表明了私有属性也可以被继承类B中调用变量e1是,会显示未定义变量。这说明静态变量虽然可以被继承,但是能调用它的只有它所在的类(子类虽能继承,但无法调用)。

<?php	header("Content-Type:text/html;charset=utf-8");	Class A {		public $p1=1;		const c1=3;		static $d1=5;		private $e1=7;		function f1(){			echo "我是A中的方法!".self::$d1;		}	}	Class B extends A{		public $p2=2;		const c2=4;		static $d2=6;		private $e2=8;		function f1(){			echo "我是B中的方法!".self::$d1;			//echo "我是B中的方法!".self::$d2;		}	}	echo "<br/>";	echo "类B中的静态属性d2:".B::$d2;	echo "<br/>"<b style="color:transparent">来&源gao@dai!ma.com搞$代^码%网</b><img>搞gaodaima代码</img>;	echo "类B中能否继承父类A中的静态属性d1:".B::$d1;	echo "<br/>";	echo "类A中的静态属性d1:".A::$d1;	echo "<br/>";	echo "类A中能否访问子类B中的静态属性d2:".A::$d2;

从中我们可以看出,子类中可以访问到父类中的静态属性,但是父类无法得到子类中的静态属性。因为系统在执行过程中是“从下至上”的查找过程,先从当前类中找,如果找不到,就向上以层(父类)查找。而父类不能向下一级(子类)查找。

注意:静态属性并不和普通的属性一样,存在于对象的数据空间中。

最后,从两个实例可得:继承并未改变其中类的任何结构。仅仅是对象中有了父类的一些东西。并且可以从父类中调用函数。(简单来说就是当创建对象时,一些能够存储的数据都会存储在当前对象所创建的数据存储区中,后面通过对象的一些操作都是在该数据存储区中进行的,与我们前面所写的类没有直接关系。类写好了后,不会从外部将其进行改变)。

以上就是PHP中继承实例详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP中继承实例详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址