ما هي حدود طول سلسلة PHP؟
فيما يتعلق بحدود طول السلاسل في PHP، هناك شروط مختلفة بناءً على إصدارات PHP وتكوينات النظام.
PHP 7.0.0 والإصدارات الأحدث (64 بت)
في هذه الإصدارات 64 بت، لا توجد قيود محددة على طول السلسلة، مما يوفر سعة هائلة لتخزين كميات كبيرة من النص.
PHP 5.x والإصدارات السابقة
قبل PHP 7.0.0 وفي الإصدارات 32 بت، كانت السلاسل محدودة بحد أقصى 2 غيغابايت، حيث يمثل الكود الداخلي طولها بعدد صحيح 32 بت.
قيود تخصيص الذاكرة
بصرف النظر عن الحد الأقصى لطول السلسلة، تواجه نصوص PHP أيضًا قيودًا على الذاكرة التخصيص للمتغيرات. يتم التحكم في هذا الحد بواسطة توجيه Memory_limit في php.ini. افتراضيًا، يبلغ حجمها 128 ميجابايت في PHP 5.2 و8 ميجابايت في الإصدارات السابقة.قد يؤدي تجاوز هذا الحد إلى حدوث خطأ فادح. ومع ذلك، فإن ضبطه على -1 يسمح لـ PHP باستخدام الذاكرة بالقدر الذي يسمح به نظام التشغيل، في حين لا يزال خاضعًا لقيود الأجهزة.
مثال عملي
لتوضيح قيود الذاكرة، فكر في برنامج نصي بحد ذاكرة يبلغ 1 ميجابايت:ini_set('memory_limit', 1024*1024);
// allocating 255KB string
$str = str_repeat('a', 255*1024);
print_r($str);
// exceeded memory limit, results in fatal error
$str = str_repeat('a', 256*1024);
print_r($str);
يخصص PHP في البداية 768 كيلو بايت للعمليات الأساسية، تاركًا البرنامج النصي مع 232 كيلو بايت من المساحة القابلة للاستخدام. يؤدي تخصيص سلسلة بحجم 255 كيلو بايت إلى ملء الذاكرة المتوفرة. إن محاولة تخصيص سلسلة بحجم 256 كيلو بايت تتجاوز الحد الأقصى وتؤدي إلى حدوث خطأ فادح. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3