@PetrSmirnov5
PHP, Java script

Как исправить условие в php?

Я ищу слово Masha в файле 1.php с функцией var_dump. Моё условие - если функция var_dump = bool(true), то нужно вывести 1, а если var_dump = bool(false), то нужно вывести 2. А выходит так, что при bool(true) - выводится 2.
Помогите найти ошибку и исправить код.
<?php
$st_search = '1.php'; //мой файл

$fname = file_get_contents($st_search);
$new = htmlspecialchars($fname, ENT_QUOTES);

$numbers = "Masha"; //искомое слово

$words = str_word_count($new, 1); 
$var_dump = var_dump(in_array($numbers, $words)); 

if ('bool(true)' == $var_dump) {
echo 1;
}else{
echo 2; 
}
?>
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
1) сравнение типов надо делать по эквивалентности
2) слишком много кода
echo (in_array($numbers, $words) ? 1 : 2);
in_array и так возвращает булево, зачем делать вар_дамп (который должен на экран это булево показать) и засовывать в переменную?

ну и да, метод поиска тут усложнен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Fafhrd
вообще лучше вот так
$var_dump = var_export(in_array($numbers, $words), true);

if (strlen($var_dump) == 4) {
echo 1;
}else{
echo 2; 
}
Ответ написан
anton_reut
@anton_reut
Начинающий веб-разработчик
Вот тут странно: ('bool(true)' == $var_dump)
Не проще так?

if ($var_dump == 1) {
echo 1;
}else{
echo 2; 
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы