PHP中部分宏應用

一、字符串複製安全

  ZVAL_STRINGL(pzv, str, len, dup);str 和 len 分別爲內存中保存的字符串地址和他的長度,dup之名該字符串是否須要被複制,值爲1則將先申請一塊新內存並複製該支付穿,而後把新內存的地址地址複製給pzv,值爲0時則直接把str的地址賦值給zval。函數

二、字符串複製內存

  在PHP中咱們獲取字符串長度,通常都會使用strlen()函數,着了說一個通常不會用到的方法。資源

  若是想在某一位置截取該字符串或已經知道了該字符串的長度,那麼能夠使用宏ZAVAL_STRINGL (zval, string, length, duplicate),它顯式的指定了字符串的長度,而不是使用strlen()函數。這個宏用該字符串長度做爲參數。但它是二進制安全的,且速度也比ZVAL_STRING快,由於少了strlen。字符串

三、資源類型string

  PHP中的資源類型的值其實就是一個整數,因此ZVAL_RESOURCE 和 ZVAL_LONG的工做差很少,只不過它會把zval的類型設置爲IS_RESOURCE。因此ZVAL_RESOURCE  約等於ZVAL_LONG二進制

四、其餘的部分宏方法

  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;

相關文章
相關標籤/搜索