From 601de21b95d38fed6581cd30a78da54f9966afd7 Mon Sep 17 00:00:00 2001 From: liubang Date: Thu, 16 Jun 2016 12:25:45 +0800 Subject: [PATCH] Update 7.1.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refcount__gc 写成了 refcoung__gc --- 7.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7.1.md b/7.1.md index 790d7be..96ced61 100644 --- a/7.1.md +++ b/7.1.md @@ -172,7 +172,7 @@ ZEND_FUNCTION(sample_arg_nullok) { ```` 这两段代码乍看起来并没有什么很大的不同,但是第一段代码确实需要更多的cpu和内存资源。可能这个技巧在平时并没多大用,不过技多不压身,知道总比不知道好。 ### Forced Separation -当一个变量被传递给函数时候,无论它是否被引用,它的refcoung__gc属性都会加一,至少成为2。一份是它自己,另一份是传递给函数的copy。在改变这个zval之前,有时会需要提前把它分成实际意义上的两份copy。这就是"/"格式符的作用。它将把写时复制的zval提前分成两个完整独立的copy,从而使我们可以在下面的代码中随意的对其进行操作。否则我们可能需要不停的提醒自己对接收的参数进行分离等操作。Like the NULL flag, this modifier goes after the type it means to impact. Also like the NULL flag, you won't know you need this feature until you actually have a use for it. +当一个变量被传递给函数时候,无论它是否被引用,它的refcount__gc属性都会加一,至少成为2。一份是它自己,另一份是传递给函数的copy。在改变这个zval之前,有时会需要提前把它分成实际意义上的两份copy。这就是"/"格式符的作用。它将把写时复制的zval提前分成两个完整独立的copy,从而使我们可以在下面的代码中随意的对其进行操作。否则我们可能需要不停的提醒自己对接收的参数进行分离等操作。Like the NULL flag, this modifier goes after the type it means to impact. Also like the NULL flag, you won't know you need this feature until you actually have a use for it. ### zend_get_arguments() 如果你想让你的扩展能够兼容老版本的PHP,或者你只想以zval*为载体来接收参数,便可以考虑使用zend_get_parameters()函数来接收参数。 zend_get_parameters()与zend_parse_parameters()不同,从名字上我们便可以看出,它直接获取,而不做解析。首先,它不会自动进行类型转换,所有的参数在扩展实现中的载体都需要是zval*类型的,下面让我们来看一个最简单的例子: