php-internals

    1热度

    2回答

    我在这里新规范发现:https://wiki.php.net/rfc/void_return_type function lacks_return(): void { // valid } function returns_nothing(): void { return; // valid } function returns_void(): void {

    5热度

    1回答

    函数array_shift()通过引用获取一个参数。传递数组字面导致致命错误: $ php -r 'var_export(array_shift(array("Test #0"));';echo Fatal error: Only variables can be passed by reference in Command line code on line 1 如预期这将失败。然而,PHP行为

    1热度

    1回答

    我正在构建一个具有LLVM后端的PHP compiler。我将使用Zend类型zend_string来表示字符串。为此,我需要一个叫做zend_string_ptr或者其他什么的LLVM指针类型。如何使用OCaml LLVM绑定创建此指针类型? 对于exampel,这个PHP代码 $a = 'asd'; 应该对应于这个C代码 zend_string *a = zend_string_init(

    3热度

    1回答

    我有一个包含文件,它定义了一个类,然后创建一个具有该类实例的全局以及一个返回全局(用于其他函数内的访问)的函数。 代码明智: class X { ... } global $x; $x = new X(); function x() { global $x; return $x; } 到目前为止,一切似乎都很好。然后有一种情况(显然)这个文件被多次包

    1热度

    1回答

    我试图编写一个PHP模块,用于检测在php cgi文件中调用的zend内部函数。喜欢的代码如下所示,我想在我的代码中找到它的名字 - 'printf'。 <?php printf("Hello SO!");?> Now我hooked与一个named function此function“zend_set_user_opcode_handler'.However我am not able到get w

    -1热度

    2回答

    他们似乎是同一回事,但却不同。我不知道哪一个是哪个:我知道我们可以使用PDO作为new PDO()并使用prepare()和query()方法从数据库中获取数据。那么,如果这是在扩展列表中提到的PDO,那么pdo_mysql和mysqlnd究竟是什么(以俗语来说)?

    0热度

    1回答

    我工作的一个PHP的C扩展,需要注册新T_OPEN_TAG<?和T_CLOSE_TAG?>标签。我不想覆盖T_OPEN_TAG和T_CLOSE_TAG,只需注册新的令牌。 PHP C扩展可能注册新的PHP标签吗?例: <: 1+1 :> PS:上面的例子仅仅是一个例子;)

    0热度

    1回答

    我在PHP 7中工作,我有一种情况,我想传递一个长度为0的字符串。所以我们如何生成长度为0的zend_string变量。 我试着将NULL分配给zend_string变量,但是行代码崩溃,因为它试图取消引用NULL。所以我猜测,我们需要分配内存以zend_string变量和全NULL值或字符串长度为0

    6热度

    1回答

    <?php $s = "foobar"; $t = $s; $u = $s; echo PHP_VERSION . "\n"; debug_zval_dump($s); xdebug_debug_zval('s'); 运行5.6.16 运行7.0.2 我想结果(PHP 7)应是: string(6) "foobar" refcount(4) s: (refcount=

    0热度

    1回答

    最近我看了一本关于PHP扩展的书,并准备写一个函数,函数原型如下: array_groupBy(string $key, array $input, $forget = false):array 此函数的功能是组$input按照对应于该组的值$key,$forget表示基团后的数组是否需要删除$key,$clourse是一个可调用类型,如果存在,则将对应于$key的值传递给闭包In侧的功能,该