当前位置:  编程技术>php

PHP类继承 extends使用介绍

    来源: 互联网  发布时间:2014-08-26

    本文导语:  出来工作这么久了,项目经验倒是不少,但是当问及底层的东西时候,常常是一言不发了。现在项目设计底层的东西越来越少,可以说是真正用到的也就是那么一点,真正核心的东西都已经被框架封装好了。总感觉自己一直进...

出来工作这么久了,项目经验倒是不少,但是当问及底层的东西时候,常常是一言不发了。现在项目设计底层的东西越来越少,可以说是真正用到的也就是那么一点,真正核心的东西都已经被框架封装好了。总感觉自己一直进步很慢,关于底层设计思想,常常也只可意会。随着时间的流逝,我们常常会感慨书到用时方恨少了,接下来一定要恶补设计思想了。

今天先来复习一下类继承。

类继承很重要,作为程序员也基本每天都会和他打交道,但是有些东西你真的都知道吗?下面是从官网上面看到的。

一个类可以在声明中用 extends,关键字继承另一个类的方法和属性。PHP不支持多重继承,一个类只能继承一个基类。

被继承的方法和属性可以通过用同样的名字重新声明被覆盖。但是如果父类定义方法时使用了 final,则该方法不可被覆盖。可以通过 parent:: 来访问被覆盖的方法或属性。

当覆盖方法时,参数必须保持一致否则 PHP 将发出 E_STRICT 级别的错误信息。但构造函数例外,构造函数可在被覆盖时使用不同的参数。

关于基本的概念想必大家都会知道,但是对于final和parent::在项目中我还真没有怎么使用过,惭愧啊。
下面主要说一下这两个关键字的用途吧。

Final 关键字

PHP 5新增的一个关键字,如果父类中的方法被声明为 final,则子类无法覆盖该方法。同样如果一个类被声明为 final,则不能被继承。
需要注意的是: 属性不能被定义为 final,只有类和方法才能被定义为 final。

范围解析操作符(::)

范围解析操作符或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。
self,parent 和 static 这三个特殊的关键字是用于在类定义的内部对其属性或方法进行访问的。

当一个子类覆盖其父类中的方法时,PHP 不会调用父类中已被覆盖的方法。是否调用父类的方法取决于子类。这种机制也作用于构造函数和析构函数,重载以及魔术方法。

下面是调用父类的方法的一个示例:

代码如下:


当在类定义之外引用到这些项目时,要使用类名。

::class 自 PHP 5.5 起,关键词 class 也可用于类名的解析。使用 ClassName::class 你可以获取一个字符串,包含了类 ClassName 的完全限定名称。这对使用了 命名空间 的类尤其有用。这些可能就是以后要讨论的话题了,关于这个概念那就是以后要讨论的了,现在我们还在使用php5.3。

不过说句实话,有一些关键字在小项目中确实是很难使用,不过我想多了解一些总还是需要的。尤其是当你使用一些第三方的类库时候,当你细细研究他的程序逻辑,你总能学点东西。尽管有些东西你长时间不用,可能就忘记了,但是毕竟他曾经在你脑海里经过过,总会为以后的人生留点痕迹。

最后废话不多说了,分享一段范围解析操作符(::)应用的代码,你们也来感受下:

代码如下:


PHP extends类继承代码示例:

代码如下:

< ?php  
class a{  
public $x;  
public $y;  
function __construct($x=0,$y=0){  
$this->x=$x;  
$this->y=$y;  
}  
function getx(){  
return $this->x;  
}  
function gety(){  
return $this->y;  
}  
function __destruct(){}  
}  
class a2 extends a{}  
/*extends是一个继承函数*/  
$b2=new a2(10,10);  
echo $b2->getx()."
";  
echo $b2->gety();  
?>

以上介绍的内容就是PHP extends类继承的全部实现步骤。

    
 
 

您可能感兴趣的文章:

  • PHP框架 Web:Extend
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php使用strip_tags从字符串中去除html标记
  • php输入流php://input使用示例(php发送图片流到服务器)
  • php使用socket_bind()函数绑定IP地址
  • php mvc使用htaccess隐藏index.php
  • php定义数组和使用示例(php数组的定义方法)
  • php生成数组的使用示例 php全组合算法
  • php导入excel php使用phpexcel导入excel文件
  • 如何使用crontab来定时执行一个.php的程序
  • php类声明和php类使用方法示例分享
  • 使用php检测用户当前使用的浏览器是否为IE浏览器
  • 怎么样在JSP中使用PHP的变量呀??
  • 使用Linux/UNIX的系统用户进行PHP用户登录验证
  • php 使用system() 调用c程序的问题
  • php跨域cookie共享使用方法
  • php5 pdo的配置与使用方法
  • 怎样在PHP网页里面使用Servlet?
  • php递归使用示例(php递归函数)
  • php命令行使用方法和命令行参数说明
  • 高分请教如何使用red had 7.3 自带的php
  • curl不使用文件存取cookie php使用curl获取cookie示例
  • php定界符<<<使用技巧和实例
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • PHP转换器 HipHop for PHP
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP 框架 Pop php
  • PHP去除html标签,php标记及css样式代码参考
  • PHP的JavaScript框架 PHP.JS
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • php服务器探针显示php服务器信息


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3