PHP - 数组限制

时间:2011-07-14 09:23:32

标签: php arrays limit

$class = array('c1', 'c2', 'c3', 'c4');

$people['c1'] = 'A';
$people['c2'] = 'B';
$people['c3'] = 'C';
$people['c4'] = 'D';

foreach ($class as $key)
{
  echo "Name: ".$people[$key]."\n"; 
}

result :

A
B
C
D

现在我向$ class和$ people添加新的50个值

在某些主机中,但是使用hostpapa.com

循环只运行36次。

从36+开始,有些值为null($ people [$ key] = null)

我不知道为什么。也许设置会限制数组?

注意:Suhosin在此主机上安装

3 个答案:

答案 0 :(得分:2)

我的猜测是托管公司可能正在运行称为Suhoshin的PHP的“安全加固”版本。

Suhoshin为PHP实现了大量安全加固功能,包括限制字段长度和数组大小等内容的功能 - 请参阅http://www.hardened-php.net/suhosin/configuration.html

可能是您的代码中的某些内容触发了Suhoshin的过滤器之一。

无论哪种方式,这听起来像是你需要与托管公司讨论的事情。

答案 1 :(得分:0)

$class = array('c1', 'c2', 'c3', 'c4');

$people[c1] = 'A';
$people[c2] = 'B';
$people[c3] = 'C';
$people[c4] = 'D';

foreach ($class as $key)
{
  if(key() > 36) {
    break;
  }
  echo "Name: ".$people[$key]."\n"; 

我没有测试过这个,但它必须工作。     }

答案 2 :(得分:0)

根据您对foreach语句的处理方式,可能是由于脚本的执行时间限制。

如果你在foreach中为每个循环做相对耗时的事情,这可能很容易累加到几分钟,这可能会遇到php.ini中的执行时间限制。