php لماذا صحيح أكبر من 3 في فب
types casting (2)
بالإضافة إلى الإجابة ديفيدز، فكرت لإضافة شيء لإعطاء المزيد من العمق قليلا.
فب على عكس لغات البرمجة الأخرى، إذا لم تكن حذرا مع المشغلين / بناء الجملة يمكنك الوقوع في ثقوب وعاء صعبة مثل واحد واجهت.
وكما قال ديفيد،
4 صحيح أيضا (لأنه غير صفر)، والحقيقي يساوي صحيح، لذلك هو أيضا أكبر من أو يساوي صحيح.
خذ هذا في الاعتبار صحيح أكبر من كاذبة.
ترو = 1
فالس = 0
حتى تأخذ هذا على سبيل المثال:
$test = 1;
if ($test == true){
echo "This is true";
}else{
echo "This is false";
}
ما سبق سوف الإخراج
هذا صحيح
ولكن إذا كنت تأخذ هذا:
$test = 1;
if ($test === true){
echo "This is true";
}else{
echo "This is false";
}
ما سبق سوف الإخراج:
هذا غير صحيح
علامة يساوي المضافة، وتبحث عن تطابق تام، وبالتالي تبحث عن integer
1 بدلا من فب القراءة 1 كما صحيح.
وأنا أعلم أن هذا هو قليلا من الموضوع، ولكن أردت فقط أن أشرح بعض الثقوب وعاء الذي يحتوي فب.
آمل أن يكون هذا هو بعض المساعدة
تصحيح:
ردا على سؤالك:
إيكو ترو> = 4؛
السبب كنت ترى 1 كما الإخراج، هو لأن ترو / خطأ تفسر على أنها أرقام (انظر أعلاه)
بغض النظر إذا كان لديك تفعل echo true>=4
أو مجرد echo true;
فب يضع صحيح كما 1 و كاذبة كما 0
https://src-bin.com
أنا أتساءل لماذا البيان التالي في فب يعود صحيح؟
true>=4
على سبيل المثال هذا الخط سوف صدى 1
echo true>=4;
هل يمكن لأي شخص أن يشرح لي المنطق وراء ذلك؟
Answer #1
4
true
أيضا (لأنه غير صفر)، true
يساوي true
، لذلك هو أيضا أكبر من أو يساوي true
.
إذا تم مقارنة بول أو فارغة مع أي شيء آخر غير سلسلة، يتم إرسال هذا الشيء إلى بول. راجع المستندات .