رأيت اليوم أن شركة Caterpillar ميزت بين السلاسل الفارغة وNULL للجميع ( http://bbs.phpchina.com/thread-99574-1-2.html أشعر أنني لا أملك فهمًا قويًا للأساسيات كانت المعرفة (مثلي) مفيدة للغاية، وكان ذلك في وقت متأخر من الليل، لسبب ما، قمت بمراجعة الكثير من "المعلومات الموثوقة" وكتبت مقالًا ونشرته هنا لمساعدة الجميع على تعلم الأساسيات ليس صارمًا، وكان المحتوى مجرد ملخص شخصي، إذا كانت هناك أوجه قصور، فيرجى إضافة المزيد من الخبراء. دون مزيد من اللغط، النص الرئيسي هو كما يلي:
1. الفرق بين
وظائف الصدى والطباعة في PHP في الأساس هو نفسه (الإخراج)، ولكن لا تزال هناك اختلافات طفيفة بين الاثنين. لا توجد قيمة إرجاع بعد إخراج الصدى، لكن print لها قيمة إرجاع، وترجع خطأ عند فشل تنفيذها. لذلك، يمكن استخدامه كدالة عادية، على سبيل المثال، بعد تنفيذ التعليمات البرمجية التالية، ستكون قيمة المتغير $r 1.
الرمز:
$r = طباعة "Hello World";
وهذا يعني أنه يمكن استخدام الطباعة في بعض التعبيرات المعقدة، ولكن لا يمكن استخدام الصدى. ومع ذلك، نظرًا لأن عبارة الارتداد لا تتطلب إرجاع أي قيمة، فإن عبارة الارتداد في التعليمات البرمجية تعمل بشكل أسرع قليلاً من عبارة الطباعة.
2. الفرق بين
وظائف include و require() هي في الأساس نفسها (تشمل)، ولكن هناك بعض الاختلافات في الاستخدام. include() هو وظيفة تضمين مشروط، في حين أن require() هي وظيفة وظيفة الإدماج غير المشروط على سبيل المثال، في الكود التالي، إذا كان المتغير $a صحيحًا، فسيتم تضمين الملف a.php:
الرمز:
إذا($a){
include("a.php");
}
ومع ذلك، فإن require() تختلف عن include(). وبغض النظر عن قيمة $a، فإن التعليمة البرمجية التالية ستتضمن الملف a.php في الملف:
الرمز:
إذا($a){
تتطلب("a.php");
}
فيما يتعلق بمعالجة الأخطاء، استخدم بيان التضمين. في حالة حدوث خطأ في التضمين، سيتخطى البرنامج بيان التضمين. على الرغم من ظهور رسالة الخطأ، سيستمر البرنامج في التنفيذ. ولكن يتطلب سوف يعطيك خطأ فادحا.
بالطبع، يمكننا أيضًا أن نفهم كلمة Qifen حرفيًا: كلمة "require" تعني طلبًا أو طلبًا قويًا جدًا.
3. عبارات require_once() و include_once()
خارج الموضوع، لأنها تبدو متشابهة عبارات require_once() و include_once() البسيطة تتوافق مع عبارات require() و include() على التوالي. يتم استخدام عبارات require_once() و include_once() بشكل أساسي عند الحاجة إلى تضمين ملفات متعددة، مما يمكن أن يتجنب بشكل فعال خطأ التعريف المتكرر للوظائف أو المتغيرات الناتج عن تضمين نفس الجزء من التعليمات البرمجية.
4. الفرق بين السلسلة الفارغة ('') وNULL
في PHP، يتم تخزين كل من السلسلة الفارغة وNULL بقيمة 0، لكن أنواعهما مختلفة. NULL)؛ ستجد أن ما يطبعونه هو سلسلة وNULL على التوالي، وبالطبع من السهل أيضًا الخلط بينه وبين echo gettype(0); integer). ، يمكن ملاحظة أن السلسلة ('') وNULL و0 هي "قيم متساوية" ولكنها ليست أنواعًا متساوية.
5. يمكن فهم الفرق بين isset وفارغ
من المعنى الحرفي: الفارغ هو تحديد ما إذا كان المتغير "فارغًا"، بينما isset هو تحديد ما إذا كان قد تم تعيين المتغير. ولكن هناك شيء واحد يجب الانتباه إليه هنا: عندما تكون قيمة المتغير 0، فإن الفارغ يعتبر المتغير مساويًا للفارغ، أي أنه لا يوجد أي إعداد. على سبيل المثال، عندما نكتشف المتغير $id، عندما يكون $id=0، نستخدم فارغًا وisset لاكتشاف ما إذا كان المتغير $id قد تم تكوينه أم لا، وكلاهما سيعيدان قيمًا مختلفة: فارغ يعتقد أنه لم يتم تكوينه، ويمكن الحصول على isset قيمة $id، أنظر إلى المثال أدناه:
شفرة؟ :
معرف $=0;
فارغ($id)?print "أنا فارغ":print "أنا $id."; // النتيجة: أنا فارغ
!isset($id)?print "أنا فارغ":اطبع "أنا $id.";//النتيجة: أنا 0
6. الفرق بين == (يساوي) و=== (يساوي).
راجع الفرق بين السلسلة الفارغة الرابعة ("") وNULL أعلاه ودعنا نلقي نظرة على مثال:
الكود:
'' == NULL;
'' === NULL;
بعد تشغيله، ستجد أن الأول صحيح والثاني خطأ! يمكن أن نرى أن == يقارن فقط ما إذا كانت القيم متساوية، في حين أن === لا يقارن القيم فحسب، بل يقارن أيضًا الأنواع، وهو أكثر صرامة.