используйте ===
вместо ==
для общего сравнения в качестве хорошей практики. Подробнее читайте здесь здесь
Измените свой код так, чтобы у вас было $case
со строкой в нем, и наберите var_dump
как $case
, так и $testtype
<?php
$testtype = "English Adult Male ";
$case = "English Adult Male ";
var_dump($testtype);
var_dump($case);
if ($testtype === "whatever") {
echo "IF!";
} else if ($testtype === $case) {
echo "ELSE IF!";
}
код выше генерирует вывод:
string(19) "English Adult Male "
string(19) "English Adult Male "
ELSE IF!
Примечание
строка ( 19 ) не строка ( 23 )
у вас есть 23 в вашем дампе var, что больше числа символов в строке "English Adult Male "
, что приводит меня к выводу, что у вас есть многобайтовая кодировка символов, но, вероятно, вы тестируете свою строку, которая не многобайтовая, а однобайтовая и его строка 19 байтов против строки 23 байтов.
вы можете конвертировать $testtype
с помощью mb_convert_encoding ()
и поддерживаемые кодировки
также mb_detect_encoding может быть удобно для обнаружения кодировки $testtype
;