排序:
默认
按更新时间
按访问量

75-保留类与特殊类

75-保留类与特殊类在面向对象语言中,都会内置一些语言内置提供的基本功能类,比如JavaScript中的Array,Number等类, PHP中也有很多这种类,比如Directory,stdClass,Exception等类,同时一些标准扩展比如PDO等扩展中也会定义一些类, PHP中类是不允许重...

2016-04-27 13:31:27

阅读数:987

评论数:0

74-魔术函数与延迟绑定

74-魔术函数与延迟绑定PHP中有一些特殊的函数和方法,这些函数和方法相比普通方法的特殊之处在于:用户代码通常不会主动调用, 而是在特定的时机会被PHP自动调用。在PHP中通常以”“打头的方法都作为魔术方法, 所以通常不要定义以”“开头的函数或方法。 例如:__autoload()函数, 通常我们...

2016-04-27 13:31:12

阅读数:694

评论数:0

73-继承,多态与抽象类

73-继承,多态与抽象类继承继承是一种关联类的层次模型,它可以建立类之间的关系,并实现代码重用,方便系统扩展。 继承提供了一种明确表述共性的方法,是一个新类从现有的类中派生的过程。 继承产生的新类继承了原始类的特性,新类称为原始类的派生类(或子类), 而原始类称为新类的基类(或父类)。派生类可以从...

2016-04-27 13:30:33

阅读数:888

评论数:0

72-访问控制

72-访问控制面向对象的三大特性(封装、继承、多态),其中封装是一个非常重要的特性。封装隐藏了对象内部的细节和实现, 使对象能够集中而完整的描述并对应一个具体的事物, 只提供对外的访问接口,这样可以在不改变接口的前提下改变实现细节,而且能使对象自我完备。 除此之外,封装还可以增强安全性和简化编程。...

2016-04-27 13:29:57

阅读数:693

评论数:0

71-类的定义

71-类的定义在这一节中,我们正式的定义一个类。首先我给出PHP语言的实现:<?php class myclass { public $public_var; private $private_var; protected $protected_var; pub...

2016-04-27 13:29:26

阅读数:759

评论数:0

70-类的原型zend_class_entry

70-类的原型zend_class_entryzend_class_entry是内核中定义的一个结构体,是内核实现PHP语言中类与对象的一个非常基础、关键的结构类型。他就相当于我们定义的类的原型。如果我们想获得一个名字为myclass的类该怎么做呢?首先我们定义一个zend_class_entry...

2016-04-27 13:28:23

阅读数:855

评论数:0

69-类的成员方法

69-类的成员方法成员方法从本质上来讲也是一种函数,所以其存储结构也和常规函数一样,存储在zend_function结构体中。 对于一个类的多个成员方法,它是以HashTable的数据结构存储了多个zend_function结构体。 和前面的成员变量一样,在类声明时成员方法也通过调用zend_in...

2016-04-27 13:27:01

阅读数:745

评论数:0

68-类的成员变量

68-类的成员变量在上一小节,我们介绍了类的结构和声明过程,从而,我们知道了类的存储结构,接口抽象类等类型的实现方式。 在本小节,我们将介绍类的成员变量和成员方法。首先,我们看一下,什么是成员变量,什么是成员方法。类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是...

2016-04-27 13:25:40

阅读数:612

评论数:0

67-类的结构和实现

67-类的结构和实现面向对象编程中我们的编程都是围绕类和对象进行的。那在PHP内部类是怎么实现的呢? 它的内存布局以及存储是怎么样的呢?继承、封装和多态又是怎么实现的呢?类的结构首先我们看看类是什么。类是用户定义的一种抽象数据类型,它是现实世界中某些具有共性事物的抽象。 有时我们也可以理解其为对象...

2016-04-27 13:24:05

阅读数:695

评论数:0

66-面向对象开篇

66-面向对象开篇面向对象是一种编程范式,它将对象作为程序的基本单元,将程序和数据封装起来, 以此来提高程序的重用性、灵活性和可扩展性。目前很多语言都支持面向对象编程,既然对象对象是一种范式,其实这就和具体的编程语言没有直接关系, 只不过很多语言将这个范式作为语言的基本元素,使用C语言也能够进行面...

2016-04-27 13:23:20

阅读数:575

评论数:0

65-匿名函数及闭包

65-匿名函数及闭包匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了, 目前使用比较广泛的Javascript以及C#,PHP直到5.3才开始真正支持匿名函数, C++的新标准C++0x也开始支持了。匿名函数是一类不需要指定标示符,而又可以被调用的函...

2016-04-27 13:22:45

阅读数:858

评论数:0

64-引用与函数执行

64-引用与函数执行一个函数的执行结果要返回给调用者,除了使用return功能,还有一种办法,那就是以引用的形式传递参数,然后在内部修改这个参数的值。前一种方法往往只能返回一个值,如果我们的函数执行结果具有多种数据,便需要把这些数据打包到一个数组、类等复合类型的变量中才能得以实现;但后一种方法相比...

2016-04-27 13:22:29

阅读数:851

评论数:0

63-函数调用与执行

63-函数调用与执行前面对函数的内部表示以及参数的传递,返回值都有了介绍,那函数是怎么被调用的呢?内置函数和用户定义函数在调用时会有什么不一样呢? 下面将介绍函数调用和执行的过程。 函数的调用函数被调用需要一些基本的信息,比如函数的名称,参数以及函数的定义(也就是最终函数是怎么执行的), 从我们...

2016-04-27 13:21:50

阅读数:590

评论数:0

62-形参return value

62-形参return valuePHP语言中函数的返回值是通过return来完成了,就像下面的程序:<?php function sample_long() { return 42; } $bar = sample_long(); ?> C语言也一样使用return关键字:int...

2016-04-27 13:21:33

阅读数:731

评论数:0

61-函数返回值

61-函数返回值在编程语言中,一个函数或一个方法一般都有返回值,但也存在不返回值的情况,此时,这些函数仅仅仅是处理一些事务, 没有返回,或者说没有明确的返回值,在pascal语言中它有一个专有的关键字 procedure 。 在PHP中,函数都有返回值,分两种情况,使用return语句明确的返回和...

2016-04-27 13:21:06

阅读数:851

评论数:0

60-zend_parse_parameters函数

60-zend_parse_parameters函数最简单的获取函数调用者传递过来的参数便是使用zend_parse_parameters()函数。zend_parse_parameters()函数的前几个参数我们直接用内核里宏来生成便可以了,形式为:ZEND_NUM_ARGS() TSRMLS_...

2016-04-27 13:20:52

阅读数:882

评论数:0

59-函数的参数

59-函数的参数前面介绍了函数的定义,函数的定义只是一个将函数名注册到函数列表的过程,在了解了函数的定义后,我们来看看函数的参数。 这一小节将包括用户自定义函数的参数和内部函数的参数两部分,详细内容如下:用户自定义函数的参数我们对于参数的类型提示做了分析,这里我们在这一小节的基础上,进行一些更详细...

2016-04-27 13:20:30

阅读数:682

评论数:0

58-定义函数的过程

58-定义函数的过程在PHP中,用户函数的定义从function关键字开始。如下所示简单示例:function foo($var) { echo $var; } 这是一个非常简单的函数,它所实现的功能是定义一个函数,函数有一个参数,函数的内容是在标准输出端输出传递给它的参数变量的值。函数的...

2016-04-26 12:32:37

阅读数:1087

评论数:0

57-函数结构转换

57-函数结构转换在函数调用的执行代码中我们会看到这样一些强制转换:EX(function_state).function = (zend_function *) op_array; 或者:EG(active_op_array) = (zend_op_array *) EX(function_st...

2016-04-26 12:32:17

阅读数:644

评论数:0

56-函数的内部结构

56-函数的内部结构在PHP中,函数有自己的作用域,同时在其内部可以实现各种语句的执行,最后返回最终结果值。 在PHP的源码中可以发现,PHP内核将函数分为以下类型:#define ZEND_INTERNAL_FUNCTION 1 #define ZEND_USER_FU...

2016-04-26 12:31:59

阅读数:585

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭