php-internals

    0热度

    1回答

    我现在试图创建一个自定义的PHP扩展,我面临的问题是我不知道如何调用父方法。 它就像是在类的构造函数,并调用父类的构造函数: zval *object, fname; object = getThis(); ZVAL_STRING(&fname, "parent::__construct", 0); if(SUCCESS != call_user_function_ex(NUL

    6热度

    1回答

    我正在写我的C++库中的PHP扩展它的定义是这样的: bool getPids(map<string,string> pidsMap, vector<string> ids); 现在,我正在写这样的上述功能的PHP包装。 ZEND_METHOD(myFInfo, get_pids) { zval *idsArray; if (zend_parse_parameters(

    3热度

    2回答

    为了测试和学习的目的,我想修改PHP 兰特和mt_rand功能,这些功能在https://github.com/php/php-src:EXT /标准/ rand.c。 我想给一个固定的输出每次rand函数被调用,并为此目的我修改了代码 PHPAPI long php_rand(TSRMLS_D) { long ret; if (!BG(rand_is_seeded)) {

    2热度

    1回答

    在PHP中,它是有效的写是这样的: <?php class Foo { public function bar() { return $this; } } ?> 我怎样才能做到这里面Zend引擎?我想要一个方法来执行一些操作,然后返回类实例引用。 此外,我想存储一些对象(来自其他类)并返回它们作为一些其他方法的结果,我应该存储它的zval*?什

    11热度

    1回答

    PHP文档也不是很明确,只是说: 在存储SplObjectStorage :: offsetExists检查是否有物体存在。(PHP> = 5.3.0) SplObjectStorage ::包含如果存储包含所提供的对象检查。(PHP> = 5.1.0) 对我来说,这几乎是相同的东西。 问题:除了offsetExists仅在5.3.0中可用,2之间的区别是什么? 小试,我进行了... $s = n

    -1热度

    1回答

    我正在写小php扩展,并在构建它时遇到问题。 代码: PHP_RINIT_FUNCTION(pstat) { int argc = ZEND_NUM_ARGS(); return SUCCESS; } 化妆上得到一个错误: .... /ext/pstat/pstat.c:122:31: error: 'ht' undeclared (first use in this

    1热度

    3回答

    我正在为PHP编写一个小的扩展。有没有办法在运行时知道正在运行的脚本文件的名称(例如:test.php)?也许一些全球或环境变量?

    0热度

    1回答

    我编写了一个代码,用于构建通过mysql_connect连接到mysql数据库的扩展。 我的代码已经编译完成,但是当我想在PHP中使用我的函数时,它需要一个循环,而且可能无法工作。 这里是我的C++代码: PHP_FUNCTION(ig_connect_to_database) { zval fname, *args[3], *retval = NULL; ZVAL_STRING(&fna

    3热度

    1回答

    我在C中创建一个PHP扩展来访问SPI接口。到目前为止,我已经得到了几乎所有的工作:php_spi on Github 但是,我似乎无法使构造函数中的$ options参数可选。我工作的代码是这样的: if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lla", &bus, &chipselect, &options) == FAILURE

    1热度

    1回答

    如果我在我的电脑 echo memory_get_usage(); echo "|"; echo memory_get_usage(); echo "|"; echo memory_get_usage(); 上运行下面的PHP程序我得到的输出 635048|635080|635080 由此看来,似乎memory_get_usage初始呼叫保留的内存32KB。我想这没有echo声明