ציטוט:
נכתב במקור על ידי RS324
4.
2. משתמש ב === 3 פעמים של שווה אומר שווה ובעל אותו ערך, במקרה כזה A לא שווה ל a
1
|
מה אתה קשור?
האופרטור == מבטא שווין בערך
האופרטור === מבטא שווין בערך ובטיפוס נתונים.
כלומר:
קוד:
SDF@sun:~> php
<?php
$a = 1; // i am a numeric, prolly integer
$b = '1'; // i am a char
if ($a === $b) echo "true\n"; else echo "false\n";
?>
false
SDF@sun:~>
שים לב, לשני המשתים ערך שווה כביכול, אבל הם מטיפוסי נתונים שונים, לכן התנאי לא מתקיים
במידה והיינו משתמשים ב== הינו מקלבים אמת:
קוד:
SDF@sun:~> php
<?php
$a = 1; // i am a numeric, prolly integer
$b = '1'; // i am a char
if ($a == $b) echo "true\n"; else echo "false\n";
?>
true
SDF@sun:~>
ובקשר למה שאמרת, מחרוזת טקסט לעולם לא יהיו שוות אם הcase של התו שונה.
כלומר:
קוד:
<?php
$a = "hello"; // lower case
$b = 'HeLlo'; // wierd case ;)
if ($a == $b) echo "true\n"; else echo "false\n";
?>
false
על מנת להחזיר אמת בהשוואה הזאת, אנחנו צריכים להפוך את 2 המחרוזות לאותו case,
ע"י שימוש בstrtolower או strtoupper על שתי המחרוזות.
קוד:
SDF@sun:~> php
<?php
$a = "hello"; // lower case
$b = 'HeLlo'; // wierd case ;)
if (strtolower($a) == strtolower($b)) echo "true\n"; else echo "false\n";
?>
true
SDF@sun:~>