PHP - لماذا يعمل هذا والآخر لا [مكرر]

0

هذا السؤال لديه بالفعل إجابة هنا:

باستخدام php ، حاولت التحقق مما إذا كانت سلسلة معينة تحتوي على بعض الأحرف.

لقد استخدمت هذا الرمز ، الذي يتم تقييمه ل false :

$string1 = 'Hello World!';
if (strpos($string1, 'hel')) {
    echo 'True!';
}

لقد أجريت بحثًا سريعًا على google ووجدت هذا الاختلاف:

$string1 = 'Hello World!';
if (strpos($string1, 'hel') !== false) {
    echo 'True!';
}

الذي يعمل ويقيم true .

ما هو الفرق الفعلي بينهما ولماذا يتم تقييم الأول على أنه false والثاني باسم true ؟؟؟

شكر!

1 إجابة

0

ترجع Strpos موضع الحرف الأول من الإبرة.
في قضيتك هذا هو h في "مرحبًا" في الموضع 0 .

منذ تمكين الطباعة في PHP ، 0 بالضبط مثل false .
وبالتالي فإن الأول خاطئ لأن حرف "h" موجود في 0 موقف سلسلة "مرحبا العالم"

:مؤلف
فوق
قائمة طعام