php4的对象详解

php4的对象

曾几何时, 在很早的版本中, php还不支持任何的面向对象编程语法. 在php4中引入了Zend引擎(ZE1), 出现了几个新的特性, 其中就包括对象数据类型.

php对象类型的演化

第一次的面向对象编程(OOP)支持仅实现了对象关联的语义. 用一个php内核开发者的话来说就是"php4的对象只是将一个数组和一些方法绑定到了一起". 它就是现在你要研究的php对象.

Zend引擎(ZE2)的第二个大版本发布是在php5中, 在php的OOP实现中引入了一些新的特性. 例如, 属性和方法可以使用访问修饰符标记它们在你的类定义外面的可见性, 函数的重载可以用来定义内部语言结构的自定义行为, 在多个类的调用链之间可以使用接口实施API标准化. 在你学习到第11章"php5对象"时, 你将通过在php5的类定义中实现这些特性来建立对这些知识的认知.

实现类

在进入OOP的世界之前, 我们需要轻装上阵. 因此, 请将你的扩展恢复到第5章"你的第一个扩展"中刚刚搭建好的骨架形态.

为了和你原有的习作独立, 你可以将这个版本命名为sample2. 将下面的三个文件放入到你php源代码的ext/sample2目录下:

config.m4

PHP_ARG_ENABLE(sample2,
  [Whether to enable the "sample2" extension],
  [  enable-sample2       Enable "sample2" extension support])  

if test $PHP_SAMPLE2 != "no"; then
  PHP_SUBST(SAMPLE2_SHARED_LIBADD)
  PHP_NEW_EXTENSION(sample2, sample2.c, $ext_shared)
fi

php_saple2.h

#ifndef PHP_SAMPLE2_H
/* Prevent double inclusion */
#define PHP_SAMPLE2_H  

/* Define Extension Properties */
#define PHP_SAMPLE2_EXTNAME    "sample2"
#define PHP_SAMPLE2_EXTVER    "1.0"  

/* Import configure options
   when building outside of
   the PHP source tree */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif  

/* Include PHP Standard Header */
#include "php.h"  

/* Define the entry point symbol
 * Zend will use when loading this module
 */
extern zend_module_entry sample2_module_entry;
#define phpext_sample2_ptr &sample2_module_entry  

#endif /* PHP_SAMPLE2_H */

sample2.c

#include "php_sample2.h"  

static function_entry php_sample2_functions[] = {
    { NULL, NULL, NULL }
};  

PHP_MINIT_FUNCTION(sample2)
{
    return SUCCESS;
}  

zend_module_entry sample2_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
    STANDARD_MODULE_HEADER,
#endif
    PHP_SAMPLE2_EXTNAME,
    php_sample2_functions,
    PHP_MINIT(sample2),
    NULL, /* MSHUTDOWN */
    NULL, /* RINIT */
    NULL, /* RSHUTDOWN */
    NULL, /* MINFO */
#if ZEND_MODULE_API_NO >= 20010901
    PHP_SAMPLE2_EXTVER,
#endif
    STANDARD_MODULE_PROPERTIES
};  

#ifdef COMPILE_DL_SAMPLE2
ZEND_GET_MODULE(sample2)
#endif

现在, 就像在第5章时一样, 你可以执行phpize, ./configure, make去构建你的sample2.so扩展模块.

你之前的config.w32做与这里给出的config.m4一样的修改也可以正常工作.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 对象
, 面向对象编程
, null
, samples
, endif
sample
php面向对象详解、jsp9大内置对象详解、jsp九大内置对象详解、js map对象详解、js对象详解,以便于您获取更多的相关知识。

时间: 2025-01-02 13:34:27

php4的对象详解的相关文章

&#106avascript的document和window对象详解

window|对象|详解 [document对象] 该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档. 属性 alinkColor 活动链接的颜色(ALINK) anchor 一个HTMI锚点,使用<A NAME=>标记创建(该属性本身也是一个对象) anchors array 列出文档锚点对象的数组(<A NAME=>)(该属性本身也是一个对象) bgColor 文档的背景颜色(BGCOLOR) cookie 存储于cookie.txt文件内的一段

JavaScript的document对象详解

javascript|对象|详解 1.对象属性document.title //设置文档标题等价于HTML的<title>标签document.bgColor //设置页面背景色document.fgColor //设置前景色(文本颜色)document.linkColor //未点击过的链接颜色document.alinkColor //激活链接(焦点在此链接上)的颜色document.vlinkColor //已点击过的链接颜色document.URL //设置URL属性从而在同一窗口打开

ASP内置对象详解之Application对象

application|对象|内置对象|详解 Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据. Application的属性: 方法如下: Application对象没有内置的属性,但是我们可以自行创建其属性. <% Application("属性名")=值 %> 其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Content

ASP内置对象详解之ObjectContext对象

object|对象|内置对象|详解 该对象用于控制Active Server Pages的事务处理.事务处理由Microsoft Transaction Server (MTS)管理. 事件 ObjectContext.OnTransactionAbort 由放弃的事务处理事件激发,在脚本完成处理后发生. ObjectContext.OnTransactionCommit 由成功的事务处理事件激发,在脚本完成处理后发生. 方法 ObjectContext.SetAbort 显式的放弃一次事务处理

ASP内置对象详解之Request对象

request|对象|内置对象|详解 Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息. 集合 Request.ClientCertificate(key[SubField]) 所有客户证书的信息的集合.对于Key,该集合具有如下的关键字: Subject 证书的主题.包含所有关于证书收据的信息.能和所有的子域后缀一起使用. Issuer 证书的发行人.包含所有关于证书验证的信息.除了CN外,能和所有的子域后缀一起使用. VadidFrom 证书发行的日期.使用VBScri

ASP内置对象详解之Response对象

response|对象|内置对象|详解 Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收.发送数据的对象,这也是实现动态的基础.下面介绍它常用的属性和方法. 1.Buffer属性 该属性用于指定页面输出时是否要用到缓冲区,默认值为False.当它为True时,直到整个Active Server Page执行结束后才会将结果输出到浏览器上.如:<%Response.Buffer=True%>&l

ASP内置对象详解之Server对象

server|对象|内置对象|详解 Server对象是ASP中一个很重要的对象,许多高级功能都是靠它来完成的.它提供了对Active Server Pages对和方法的使用,在这我主要介绍几个常用的方法. 1.MapPath方法 该方法返回指定文件的相对路径或物理路径.若Path以一个(/)或(\)开始,则MapPath方法返回路径时将Path视为完整的虚拟路径.若Path不是以斜杠开始,则MapPath方法返回同.asp文件中已有的路径相对的路径.如:test.asp文件位于C:\inetpu

ASP内置对象详解之Session对象

session|对象|内置对象|详解 Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间.每一访问者都会单独获得一个Session.在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据:如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息. 1.SessionID属

ASP内置对象详解精彩教程

对象|教程|内置对象|详解 使用ASP开发动态网站我们经常使用到其中的六个内置的对象,今天给大家收集了一下供大家参考! 1.ASP内置对象详解之Session对象 [2005-03-16]     2.ASP内置对象详解之Server对象 [2005-03-16]     3.ASP内置对象详解之Response对象 [2005-03-16]     4.ASP内置对象详解之Request对象 [2005-03-16]     5.ASP内置对象详解之ObjectContext对象 [2005-