[FAQ]PHP中的一些常识:类篇

我把一些PHP中类的常识性整理出来,让新手们更容易掌握PHP类,以便能快速看懂那些老大们写的程序,呵呵,不过比较少,希望老大们补充一下或者修正其中错误理解。

Q:PHP中的类可以有构造函数么?
A:可以,只要函数名和类名相同,这个函数将成为构造函数。在使用 new 操作符来创建一个类的实例时,该构造函数将会自动调用,因此,可以把一些初始化工作放在构造函数里完成。

Q:PHP中的类有析构函数么?
A:没有。当对象被销毁,使用 unset() 或者简单的脱离范围,析构函数都会自动调用。但 PHP 中没有析构函数。 如:
unset($foo);
就销毁一个类对象$foo了。

Q:要如何继承一个类?
A:使用关键字 extends 来继承一个类,如:
class B extents A {
}

Q:在类的定义中如何引用自身?
A:使用 $this 来引用当前类自身,如:
$this->name = "Tom";

Q:在子类中如何使用父类?
A:使用 :: 操作符,且有两种方式,一种是直接用父类名,如:
     A::example();
一种是用 parent 关键字,如:
    parent::example();
建议采用 parent:: 来引用父类。

Q:我不想创建类的实例,能直接使用类中的函数或变量吗?
A:可以,采用 :: 操作符,如:
    B::example();
就可以执行B类中的函数example(),而并没有创建任何B类的对象,仅仅是作为一个类函数来调用,这对于功能模块归纳组织很有好处。

Q:PHP有多重继承么?//added by erquan
A:没有。子类不能同时从两个父类继承,即一个孩子不能同时有两个爸爸:)。子类必须依赖于一个且必须已存在的基类。

(0)

相关推荐

  • [FAQ]PHP中的一些常识:类篇

    我把一些PHP中类的常识性整理出来,让新手们更容易掌握PHP类,以便能快速看懂那些老大们写的程序,呵呵,不过比较少,希望老大们补充一下或者修正其中错误理解. Q:PHP中的类可以有构造函数么?A:可以,只要函数名和类名相同,这个函数将成为构造函数.在使用 new 操作符来创建一个类的实例时,该构造函数将会自动调用,因此,可以把一些初始化工作放在构造函数里完成. Q:PHP中的类有析构函数么?A:没有.当对象被销毁,使用 unset() 或者简单的脱离范围,析构函数都会自动调用.但 PHP 中没有

  • Bottle框架中的装饰器类和描述符应用详解

    最近在阅读Python微型Web框架Bottle的源码,发现了Bottle中有一个既是装饰器类又是描述符的有趣实现.刚好这两个点是Python比较的难理解,又混合在一起,让代码有些晦涩难懂.但理解代码之后不由得为Python语言的简洁优美赞叹.所以把相关知识和想法稍微整理,以供分享. 正文 Bottle是Python的一个微型Web框架,所有代码都在一个bottle.py文件中,只依赖标准库实现,兼容Python 2和Python 3,而且最新的稳定版0.12代码也只有3700行左右.虽然小,但

  • 浅谈python中的面向对象和类的基本语法

    当我发现要写python的面向对象的时候,我是踌躇满面,坐立不安呀.我一直在想:这个坑应该怎么爬?因为python中关于面向对象的内容很多,如果要讲透,最好是用面向对象的思想重新学一遍前面的内容.这个坑是如此之大,犹豫再三,还是只捡一下重要的内容来讲吧,不足的内容只能靠大家自己去补充了. 惯例声明一下,我使用的版本是 python2.7,版本之间可能存在差异. 好,在开讲之前,我们先思考一个问题,看代码: 为什么我只创建是为 a 赋值,就可以使用一些我没写过的方法? 可能会有小伙伴说:因为 a

  • jQuery Attributes(属性)的使用(二、类篇)

    本系列文章分为:属性篇.类篇.Html代码篇.文本篇.值篇共5篇文章. 本篇讲解:addClass(class),removeClass(class),toggleClass(class)的用法. 您对本系列文章有任何建议或意见请发送到邮箱:sjzlgt@qq.com 您可以到jQuery官网来学习更多的有关jQuery知识. . addClass(class)用法 定义:为每个匹配的元素添加指定的类名. 返回值:Object 参数:class (String) : 一个或多个要添加到元素中的C

  • 老生常谈Eclipse中的BuildPath(必看篇)

    什么是Build Path? Build Path是指定Java工程所包含的资源属性集合. 在一个成熟的Java工程中,不仅仅有自己编写的源代码,还需要引用系统运行库(JRE).第三方的功能扩展库.工作空间中的其他工程,甚至外部的类文件,所有这些资源都是被这个工程所依赖的,并且只有被引用后,才能够将该工程编译成功,而Build Path就是用来配置和管理对这些资源的引用的. Build Path一般包括: JRE运行库 第三方的功能扩展库(*.jar格式文件) 其他的工程 其他的源代码或Clas

  • 总结的一些PHP开发中的tips(必看篇)

    一.开发习惯和php代码 1.准确的理解各种概念.现在的新东西层出不穷,望文生义和一知半解对开发工作有害无益://比如我就碰到有人理解松散耦合(这个东西不新)的概念居然是要求代码不要有空行,否则你的程序就是"太松散"了 2.代码美观,适当的空行.缩进,空格,这样能更容易理解代码段的意思: 3.一定要写注释,而且要恰当的注释,要不然后面的维护工作或者接手代码的人会痛哭不已: 4.静态方法.类访问权限.接口.抽象类应该综合起来使用,发挥各自特点: 5.不要复制粘贴,即使是要用到现成的代码,

  • 在vue中动态添加class类进行显示隐藏实例

    如下所示: <div class="status_button"> <el-button type="success" @click="checkSite" >查岗</el-button> <el-button type="danger">视频</el-button> </div> <!-- 查岗部分显示影藏 --> <div class

  • Android Studio 中aidl的自定义类的使用详解

    自己折腾了好久,记录一下. service端: 1:创建类Dog,需要实现Parcelable接口: 2:aidl下创建 Dog.aidl,里面两句话就可以了 (1)package s包名; (2)parcelable Dog; 3:interface.aidl引入Dog类, import s包名.Dog; Client 端: 1:创建类Dog,需要实现Parcelable接口: 2:aidl下创建 Dog.aidl, (1)package c包名; (2)parcelable Dog; 注意:

  • c++中的单例类模板的实现方法详解

     1.什么是单例模式 在架构设计时,某些类在整个系统生命周期中最多只能有一个对象存在 ( Single Instance ).如超市收银系统,其外观主要由显示器(1个).扫描枪(1个).收款箱(1个)组成,在系统正常运行期间这三部分都是唯一存在的:也就是说,显示器.扫描枪.收款箱这三部分都应该有各自的类,并且每个类只能唯一地实例化一个对象,基于这种模式的程序设计,称为单例模式. !!!单例模式只能创建一个对象,且该对象的生命周期伴随系统的整个运行期间. 2.怎么实现单例模式 思考:如何定义一个类

  • JAVA中的日期时间类用法总结

    前言 好记性不如烂笔头,日期时间类那么花哨不如记下来多看两眼. 提示:以下是本篇文章正文内容,下面案例可供参考 一.日期时间类的包 代码如下(示例): java.util.Date; java.time.format.DateTimeFormatter; java.util.Calendar java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.tim

随机推荐