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 .

إذا تم مقارنة بول أو فارغة مع أي شيء آخر غير سلسلة، يتم إرسال هذا الشيء إلى بول. راجع المستندات .





casting