相关疑难解决方法(0)

isset()和array_key_exists()之间有什么区别?

以下两个函数调用如何比较:

isset($a['key'])

array_key_exists('key', $a)
Run Code Online (Sandbox Code Playgroud)

php

395
推荐指数
6
解决办法
12万
查看次数

在PHP中,什么是更快,更大的Switch语句或Array键查找

在PHP中什么更快,制作一个大的switch语句,或者设置一个数组并查找密钥?

在你回答之前,我很清楚,对于纯查找,数组更快.但是,这是假设只创建一次数组,然后反复查找它.

但这不是我正在做的 - 每次运行代码都是新的,每次只使用一次数组.因此,每次都需要重新计算所有数组哈希值,并且我想知道是否执行该设置比仅使用switch语句更慢.

php arrays hash parsing switch-statement

25
推荐指数
2
解决办法
6962
查看次数

确认PHP静态变量不会在请求中保持不变

我正在寻找保证静态变量不存储在PHP请求之间.以下问题:

跨多个.php页面的PHP静态变量

php中的静态变量是否会持续存在于请求中?

跨会话的静态变量

明确地说它们不是,但它们更多地是在提供维持状态的方式而不是对预期行为的具体讨论.

举个例子,如果我有PHP代码如下:

function myfunc()
{
    static $a=0;
    print $a++;
}

for ($i=0;$i<10;$i++) myfunc();
Run Code Online (Sandbox Code Playgroud)

然后每次运行它都会得到0123456789的输出.我对PHP的直觉/理解使我非常确定必须如此.

在我自己的实验中,我已经将一个(preforking)apache关闭到一个子节点,以确保在请求之间不记住该变量.正如我所料,请求之间不会记住它.但这只是PHP运行的一种情况.

我正在寻找的是:

链接到官方文档,说明这是预期的行为,不会改变.相关的PHP文档没有明确提到这一点(注释除外).

或者,在诸如Web服务器或性能增强PHP框架之类的请求中记住静态变量的示例,这些可能不会清除静态变量以提高请求之间的速度.

php

9
推荐指数
2
解决办法
5046
查看次数

标签 统计

php ×3

arrays ×1

hash ×1

parsing ×1

switch-statement ×1