PHP - предел массива - PullRequest
       15

PHP - предел массива

0 голосов
/ 14 июля 2011
$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

теперь, когда я добавляю новые 50 значений в $ class и $ people

на каком-то хосте, все нормально, но с hostpapa.com

цикл работает только 36 раз.

из 36+, некоторые значения равны нулю ($ people [$ key] = null)

Не знаю почему.Может быть, настройки ограничивают массив?

Примечание: Suhosin инсталлирован на этом хосте

Ответы [ 3 ]

2 голосов
/ 14 июля 2011

Я думаю, что хостинговая компания может использовать «усиленную безопасность» версию PHP, известную как Suhoshin .

Suhoshin реализует большое количество функций усиления безопасности для PHP, включая возможность ограничивать такие вещи, как длины полей и размеры массивов - см. http://www.hardened -php.net / suhosin / configuration.html

Возможно, что-то в вашем коде вызывает один из фильтров Сухошина.

В любом случае, это звучит как то, что вам нужно обсудить с вашей хостинговой компанией.

0 голосов
/ 14 июля 2011

В зависимости от того, что вы делаете для оператора foreach, это может быть связано с ограничением времени выполнения вашего скрипта.

Если вы выполняете относительно длительное время на цикл в foreach, это может легко добавить до минут и может привести к ограничению времени выполнения в php.ini.

0 голосов
/ 14 июля 2011
$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"; 

Я не проверял это, но оно должно работать. }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...