Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Selesaikan ralat Fatal PHP biasa: Ralat memori kehabisan

Selesaikan ralat Fatal PHP biasa: Ralat memori kehabisan

王林
王林asal
2023-08-21 13:43:442760semak imbas

解决常见的PHP Fatal error: Out of memory错误

Penyelesaian kepada PHP biasa Ralat maut: Ralat kehabisan memori

Apabila membangun dengan PHP, kita sering menghadapi beberapa ralat, salah satunya ralat "Kehabisan ingatan". Ralat ini biasanya berlaku apabila skrip PHP cuba memperuntukkan lebih banyak memori daripada had memori dalam php.ini. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk menyelesaikan masalah ini dan memberikan contoh kod yang sepadan.

  1. Tingkatkan had ingatan

Penyelesaian pertama adalah untuk mengelakkan ralat "Kehabisan ingatan" dengan meningkatkan had ingatan. Anda boleh meningkatkan had memori dengan mengubah suai fail php.ini. Buka fail php.ini dan cari baris berikut:

memory_limit = 128M

Tingkatkan nilai di dalamnya, contohnya, tukar kepada:

memory_limit = 256M

Simpan fail dan mulakan semula pelayan web.

  1. Gunakan fungsi ini_set

Penyelesaian kedua ialah menggunakan fungsi ini_set untuk meningkatkan had memori dalam kod secara dinamik. Tambahkan kod berikut pada skrip PHP anda:

ini_set('memory_limit', '256M');

Dengan cara ini, anda boleh meningkatkan had memori buat sementara waktu tanpa mengubah suai fail php.ini. Pendekatan ini berguna apabila hanya skrip tertentu memerlukan lebih banyak memori.

  1. Optimumkan kod

Satu lagi sebab biasa ialah kod itu sendiri terlalu menggunakan memori, menyebabkan ralat "Kehabisan ingatan". Dalam kes ini, anda perlu memeriksa dan mengoptimumkan kod anda untuk mengurangkan jejak memori.

Berikut ialah beberapa petua pengoptimuman kod biasa:

  • Lepaskan pembolehubah yang tidak lagi digunakan: Dalam gelung besar, pastikan untuk melepaskan pembolehubah yang tidak lagi digunakan tepat pada masanya Anda boleh melepaskan memori dengan menetapkan pembolehubah kepada null . . Ini boleh mengurangkan penggunaan memori.
for ($i = 0; $i < 1000000; $i++) {
    // 使用变量
}

// 释放变量
$i = null;
  • Gunakan caching
    Caching ialah satu lagi cara yang berkesan untuk mengurangkan penggunaan memori. Menyimpan data yang kerap digunakan dalam cache mengurangkan akses kerap ke pangkalan data atau sistem fail, dengan itu mengurangkan penggunaan memori.
  • Anda boleh menggunakan sistem caching terbina dalam PHP APC (Alternatif PHP Cache), atau menggunakan perpustakaan caching pihak ketiga yang lain seperti Memcached atau Redis.
$array = [1, 2, 3, 4, 5];

// 释放数组元素
unset($array[0]);
    Dengan mengikut kaedah di atas, anda sepatutnya berjaya menyelesaikan ralat "Kehabisan ingatan" dalam PHP. Ingat, sentiasa pastikan kod anda cekap dan munasabah sebelum mengoptimumkannya dan meningkatkan had memori.
  1. Apabila memproses data berskala besar, beri perhatian khusus kepada penggunaan memori untuk mengelakkan ralat yang tidak perlu. Pada masa yang sama, kerap menyemak dan mengoptimumkan kod anda boleh membantu anda meningkatkan prestasi dan kestabilan aplikasi PHP anda.

Atas ialah kandungan terperinci Selesaikan ralat Fatal PHP biasa: Ralat memori kehabisan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn