分类 PHP 下的文章

PHP7扩展开发(四):拷贝与引用


引用计数

迄今为止,我们向HashTables中加入的zval要么是新建的,要么是刚拷贝的。它们都是独立的,只占用自己的资源且只存在于某个HashTable中。作为一个语言设计的概念,创建和拷贝变量的方法是“很好”的,但是习惯了C程序设计就会知道,通过避免拷贝大块的数据(除非绝对必须)来节约内存和CPU时间并不少见。考虑这段用户代码:

<?php
$a = file_get_contents('fourMegabyteLogFile.log');
$b = $a;
unset($a);


PHP7扩展开发(三):参数、数组和Zvals


起步

到这已经能声明简单函数,返回静态或者动态值了。定义INI选项,声明内部数值或全局数值。本章节将介绍如何接收从调用脚本(php文件)传入参数的数值,以及 PHP内核Zend引擎 如何操作内部变量。


PHP7扩展开发(二):配置项与全局数值


起步

Zend引擎提供了另种管理设置值(INI)的途径。现在弄个简单的,我们经常看到php.ini里有诸如 display_errors = On 这样的全局设置。假设我们需要为我们扩展定义一个值: hello.greeting 并用函数 hello_ini() 返回它的内容。

在php.ini:

[hello]
hello.greeting=1

为了避免命名空间的冲突,我们扩展的名字作为所有值的前缀。仅仅是一种约定,一个句点用来分隔扩展名和说明性的初始设定名字。