PHP中部分宏应用

Posted 蚂蚁力量

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中部分宏应用相关的知识,希望对你有一定的参考价值。

1、字符串复制

  ZVAL_STRINGL(pzv, str, len, dup);str 和 len 分别为内存中保存的字符串地址和他的长度,dup之名该字符串是否需要被复制,值为1则将先申请一块新内存并复制该支付穿,然后把新内存的地址地址复制给pzv,值为0时则直接把str的地址赋值给zval。

2、字符串复制

  在php中我们获取字符串长度,一般都会使用strlen()函数,着了说一个一般不会用到的方法。

  如果想在某一位置截取该字符串或已经知道了该字符串的长度,那么可以使用宏ZAVAL_STRINGL (zval, string, length, duplicate),它显式的指定了字符串的长度,而不是使用strlen()函数。这个宏用该字符串长度作为参数。但它是二进制安全的,且速度也比ZVAL_STRING快,因为少了strlen。

3、资源类型

  PHP中的资源类型的值其实就是一个整数,所以ZVAL_RESOURCE 和 ZVAL_LONG的工作差不多,只不过它会把zval的类型设置为IS_RESOURCE。所以ZVAL_RESOURCE  约等于ZVAL_LONG

4、其他的部分宏

  ZVAL_BOOL(pzv, b): 将pzv所指的zval设置为IS-BOOL类型,值为b;

  ZVAL_TRUE(pzv):将pzv所指的zval设置为IS_BOOL类型,值为true;

  ZVAL_FALSE(pzv):将pzv所指的zval设置为IS_BOOL类型,值为false;

  ZVAL_LONG(pzv, 1):将pzv所指的zval设置为IS_LONG类型,值为1;

  ZVAL_DOUBLE(pzv, d):将pzv所指的zval设置为IS_DOUBLE类型,值为d;

 

以上是关于PHP中部分宏应用的主要内容,如果未能解决你的问题,请参考以下文章

宏define

NewRelic - 如何忽略 PHP 应用程序的一部分

C++中怎样写宏定义

如何在asp.net核心应用程序中执行open office calc(宏)

C语言中单井号(#)和双井号(##)在宏语句中的应用

如果我在 Visual Studio 中开发 Excel 应用程序,我会失去宏录制的好处吗?