8得票3回答
如何从PHP扩展中返回数组,而不需要在内存中复制它?

我正在开发一个PHP扩展,其中一个对象方法需要返回一个数组zval。 该方法如下: ZEND_METHOD(myObject, myMethod) { zval **myArrayProperty; if (zend_hash_find(Z_OBJPROP_P(getThi...

12得票1回答
关于PHP 7引用计数的困惑

<?php $s = "foobar"; $t = $s; $u = $s; echo PHP_VERSION . "\n"; debug_zval_dump($s); xdebug_debug_zval('s'); 在 PHP 5.6.16 中运行 在PHP 7....

13得票1回答
SplObjectStorage::contains和SplObjectStorage::offsetExists有什么区别?

PHP文档并不是非常明确,只说明了以下内容: SplObjectStorage::offsetExists 检查对象是否存在于存储中。 (PHP >= 5.3.0) SplObjectStorage::contains 检查存储是否包含所提供的对象。 (PHP >= 5.1.0) 对我来...

26得票3回答
PHP中对象的销毁顺序是什么?

对象析构的精确顺序是什么? 从测试中,我有一个想法:当前范围的FIFO。class test1 { public function __destruct() { echo "test1\n"; } } class test2 { ...

22得票4回答
PHP内存实际上是如何工作的?

我一直听说并寻找新的php“良好编程实践”,例如:最好(为了性能)检查数组键是否存在,而不是在数组中搜索,但似乎这对内存也更好: 假设我们有:$array = array ( 'one' => 1, 'two' => 2, 'three' =&gt...

11得票1回答
Zend自定义模块

我正在尝试构建自己的Zend模块(.so)。 我们有多个功能可以在我们自己的模块中完成,这将提高我们在高流量网站(每天50k+访问量)上的性能。 这些是简单的模块,但我想知道,Zend使用的语言是否类似于 C? 将当前的C代码翻译为Zend代码有多容易? 例如: 我想检查树中有多少个...

16得票1回答
如何用C语言编写PHP模块

我怎样才能用C语言编写自己的模块?这是可行的吗?

9得票1回答
PHP拒绝在这种简单情况下接受返回类型的原因是什么?

在PHP 7.1.4中,使用严格类型,我有一个简单的面向对象设置,涉及一些接口和一些实现这些接口的类。下面的例子,正如您所期望的那样,可以正常工作。 declare(strict_types=1); interface Loginable { public function login...

9得票1回答
PHP的“o”序列化格式是用来干什么的?

PHP 7.4不兼容的更改列表包含以下注意事项: 序列化 已删除o序列化格式。由于它从未由PHP生成,因此这可能只会破坏手动创建字符串的反序列化。 (请注意,这是指小写字母o,而不是用于对象序列化的大写字母O格式。) 似乎PHP的serialize()函数从未生成过这个,但存在这个注...

8得票3回答
重复数组键(注意:从__sleep()返回的成员变量“a”多次返回)

这个标题可能看起来有点傻,但我对此非常认真。今天在工作中,我遇到了一个奇怪的 PHP 行为,我无法解释。幸运的是,在 PHP 7.4 中已经修复了这个问题,所以似乎有人也遇到了这个问题。 我制作了一个小例子来说明出了什么问题: <?php class A { private...