php-internals

    1热度

    1回答

    如果它是c++,这可以通过模板来实现,但正如我们所知,PHP是用c编写的,这种数据结构如何在没有模板的情况下实现?

    1热度

    1回答

    我在[example.cc]的方法: std::string Car::accelerate (std::string n) { cout<<n<<endl; return n; } 我想从PHP扩展 我在[test_php.cc]延伸写这个调用这个方法: char *strr=NULL; int strr_len; if (zend_parse_parameters(ZEND_N

    0热度

    1回答

    这是php_ex.cc。当我编译我的.so库时,retur()方法不起作用。为什么?我没有错误,但它应该打印“测试”,它不会; t。需要一些help.THX [php_ex.cc] #include "php_vehicles.h" #include "car.hpp" zend_object_handlers car_object_handlers; zend_object_handle

    2热度

    1回答

    我想从C库中包装一个自定义的PHP扩展,现在我有一个初始化函数,它启动一个特定的自定义连接,似乎是昂贵的,我不应该每次运行它调用该函数。 让我们假设我有在Zend包装下面, PHP_FUNCTION(get_data){ conn = conn_init(); data = getdata(conn); return data; } conn_init()是昂贵

    11热度

    1回答

    我试图建立自己的Zend模块(的.so) 我们有多种功能,可以在我们自己的模块来完成,这将提高我们在一个高流量的网站性能天(50K +访问)。 这些都是简单的模块,但我不知道已经被Zend使用的语言类似于C? 多么容易当前的C代码转化为Zend的代码? 例子: 我想查我多少个节点的树: int nbNodes(Nodes *n, int *err) { // count how many nod

    1热度

    1回答

    我们已经做了一个Zend扩展,我们想写的zval的回声应该写出来的地址,但我们不知道如何接收它们,因为我们已经注意到回声“测试”之间存在差异;和$ a =“test”; echo $ a; .... Some stuff that overrides the echo opcode .... FILE *tmpfile; int echo_handler(ZEND_OPCODE_HANDLE

    1热度

    2回答

    当写的语法在PHP关联数组我们 $a = array('foo' => 'bar'); 我很好奇的=>语法,或者可能是运营商的关系如下。这是否涉及ZE中散列表中使用的某种引用,或者在C中使用的某种随后的右移或引用?我想我只是想知道这个语法的真正底层目的,它是如何涉及ZE和/或用于处理数组的PHP扩展,它如何可能与编译前的C中的书面函数有关,或者如果我只是不知道什么是什么我在说:)

    11热度

    1回答

    我想知道什么时候释放PHP其用于一个变量 例如 function foo(){ $foo = 'data'; return $foo; // <- is the memory space for `$foo` emptied at this point? } 是慢于存储器: function foo(){ return 'data'; } ?

    1热度

    1回答

    有些东西令我困惑。假设有一个类成员 Foo::$bar,它必须被初始化为 构造函数中的空数组。如果我这样做(通过zend_update_property),其增加的计数为 (从1开始,它在alloc + array_init之后得到2)。这是 显然为什么会发生这种情况,因为从zend_update_property的角度来看,它从外部世界中的somone中获得了一个 变量,所以它适用于++它。 但

    2热度

    2回答

    我需要在PHP扩展中向超全局$ _SERVER数组添加条目。我相当肯定php_register_variable()会做这项工作,把关键和价值作为论据;但我不知道要传递什么作为第三个参数。不幸的是关于这个主题的文档相当稀少。