Bitkin 33554432 bayt İzin bellek boyutu php hatası (93 bayt ayırmaya çalıştı)

3 Cevap php

Ben aşağıdaki kodu eklenir:

$counter = 1;
while($_POST['additional_contact1'] != '' || $_POST['additional_contact2'] != '' || $_POST['additional_contact3'] != '') {
  if($_POST['additional_contact' . $counter] != '') {
    $_SESSION['contact'][$counter]['additional_contact'] = $_POST['additional_contact' . $counter];
    $_SESSION['contact'][$counter]['additional_int_prefix'] = $_POST['additional_int_prefix' . $counter];
    $_SESSION['contact'][$counter]['additional_prefix'] = $_POST['additional_prefix' . $counter];
    $_SESSION['contact'][$counter]['additional_first'] = $_POST['additional_first' . $counter];
    $_SESSION['contact'][$counter]['additional_last'] = $_POST['additional_last' . $counter];
  } else {
    $_SESSION['contact'][$counter]['additional_contact'] = null;
    $_SESSION['contact'][$counter]['additional_int_prefix'] = null;
    $_SESSION['contact'][$counter]['additional_prefix'] = null;
    $_SESSION['contact'][$counter]['additional_first'] = null;
    $_SESSION['contact'][$counter]['additional_last'] = null;
  }

$counter++;
}

ve ben bu hatayı aldım: Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 93 bytes)

Ben ini_set ile bellek sınırı () arttırmaya çalıştık ama yine 96M çalışmak olmaz. Ne o kadar çok belleğe ihtiyaç yapmak benim koduyla yanlış yapıyorum? Bu sorunu nasıl çözebilirim?

3 Cevap

Belki döngü koşul yanlış olarak değerlendirilirse hiç?

Sen daha fazla bellek kullanılabilir olana kadar bellek tüketir orada sonsuz bir döngü olabilir.

while($_POST['additional_contact1'] != '' || $_POST['additional_contact2'] != '' || $_POST['additional_contact3'] != '') {

Bu üç değer bünyesinde değiştirmek istemiyorsanız, oluşturduğunuz ve inifite döngü. Yerine if kullanmak isteyebilirsiniz, ama ben bütün bağlamını bilmiyorum.