应用操作-Zend_reference引用类型的使用

应用操作-Zend_reference引用类型的使用

首先新建一个PHP<?php $a = "string"; $b = &$a; echo $a; echo $b; $b = "hello!"; echo $a; echo $b; unset($b); echo $b; echo $a;开干[jack@192 test]$ gdb /home/jack/Desktop/php-7.1.0/output/bin/php GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7 Copyright (C) 2013 Free Soft...

PHP拓展基础 2021-04-01 AM 196℃ 0条
应用操作-Zend_string 与写时复制

应用操作-Zend_string 与写时复制

新建一个string.php<?php //const string $c = "hello world!"; echo $c; $a = time()."string"; echo $a; //copy on write $b = $a; echo $a; echo $b; $b = "hello"; echo $a; echo $b;执行程序[jack@192 test]$ gdb /home/jack/Desktop/php-7.1.0/output/bin/php GNU gdb (GDB) Red Hat ...

PHP拓展基础 2021-04-01 AM 184℃ 0条
应用操作-调试各种类型

应用操作-调试各种类型

调试各种类型#define IS_UNDEF 0 #define IS_NULL 1 #define IS_FALSE 2 #define IS_TRUE 3 #define IS_LONG 4 #...

PHP拓展基础 2021-04-01 AM 196℃ 0条
应用操作-opcode调试

应用操作-opcode调试

opcode调试1.新建一个测试文件 <?php $b=$a; $b=$b+1; echo $b; 2.编译文件 /www/server/php/71/bin/phpdbg -f test.php prompt> list 100 00001: <?php 00002: 00003: $a =1; 00004: $b=$a; 00005: $b=$b+1; 00006: echo $b; 00007: prompt> print exec [Context /www/wwwroot/swoole/fuck/test.php (6 ops)] ...

PHP拓展基础 2021-04-01 AM 184℃ 0条
应用操作-开启自动化测试文件

应用操作-开启自动化测试文件

开启自动化测试文件1.注入环境变量 export TEST_PHP_EXECUTABLE=/www/server/php/71/bin/php 2.假如上面步骤不行的话 vim /etc/profile #编辑PHP测试脚本文件 export TEST_PHP_EXECUTABLE=/www/server/php/71/bin/php 3.执行环境文件 source /etc/profile 4.重启服务器 5.执行测试文件 php run-tests.php /software/php-7.1.12/ext/yaf/tests/001.phpt

PHP拓展基础 2021-04-01 AM 176℃ 0条
应用操作-如何删除一个扩展

应用操作-如何删除一个扩展

如何删除一个扩展1.修改php.ini vim /www/server/php/71/etc/php.ini 2.删除编译文件 cd /www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/ rm -rf hello.so 3.删除源码中的文件 cd /software/php-7.1.12/ext rm -rf hello 4.重启 /etc/init.d/php-fpm-71 restart

PHP拓展基础 2021-04-01 AM 167℃ 0条
应用操作-日常(PHP拓展基础)

应用操作-日常(PHP拓展基础)

return_valuezval *return_value,我们在函数内部修改这个指针,函数执行完成后,内核将把这个指针指向的zval返回给用户端的函数调用者。 类似于空数组 ZVAL_LONG(return_value, 42); 就会返回42 Z_ARR_P的意思Z_ARR_P(zval_p) = Z_ARR(*(zval_p)) Z_ARR(zval) = (zval).value.arr = zend_array桶交换static void array_bucket_p_sawp(void *p, void *q) /* {{{ */ { Bucket...

PHP拓展基础 2021-04-01 AM 176℃ 0条
应用操作-日常(拓展)

应用操作-日常(拓展)

日常操作# 链接借鉴 https://www.php.net/manual/zh/funcref.php https://www.php.net/manual/zh/book.array.php php-7.1.31\ext\standard\array.c # 更换PHP版本 rm -f /usr/bin/php ln -sf /www/server/php/71/bin/php /usr/bin/php # gdb php break zif_fuck_combine run jack.php source /software/php-7.1.31/.gdbinit zb...

PHP拓展基础 2021-04-01 AM 165℃ 0条
应用操作-实现str_concat功能

应用操作-实现str_concat功能

实现str_concat功能PHP_FUNCTION(str_concat) { zend_string *prefix, *subject, *result; zval *string; if (zend_parse_parameters(ZEND_NUM_ARGS(), "Sz", &prefix, &string) == FAILURE) { return; } subject = zval_get_string(string); if (zend_bi...

自研拓展 2021-03-31 AM 237℃ 0条
应用操作-判断传入参数的类型

应用操作-判断传入参数的类型

判断传入参数的类型#ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "zend_bitset.h" #include "ext/standard/php_var.h" #include "php_fuck.h" static int le_fuc...

自研拓展 2021-03-31 AM 162℃ 0条
应用操作-接受传入的参数和输出返回值

应用操作-接受传入的参数和输出返回值

接受传入的参数和输出返回值#ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "zend_bitset.h" #include "ext/standard/php_var.h" #include "php_fuck.h" static int le...

自研拓展 2021-03-31 AM 177℃ 0条