Как принять ввод в PHP-CLI (версия 7.3) для переменной регистра переключателя? - PullRequest
0 голосов
/ 10 марта 2019

Мой код выглядит следующим образом:

switch ($input)
{
case "hello":
    .......code1..... ;
     break;
case "bye" :
     ......code2 .....;
     break;
case "xoxo":
     .......code3.....;
     break;
default:
    .......code4.....;

}

И я использую $input=fgets(STDIN) для ввода, но он не выполняет соответствующие коды, даже если регистр совпадает.var_dump($input); или echo $input; показывает, что значение назначено правильно (по крайней мере, мне кажется).Что мне нужно добавить (или изменить) в кодах?

1 Ответ

0 голосов
/ 11 марта 2019

$input=fgets(STDIN) содержит \ n символ новой строки в конце. Сравните два дампа из этого кода:

$input=fgets(STDIN);
var_dump($input);
$input = rtrim($input);
var_dump($input);

и вывод вызывается с $ echo 'hello' | php a.php

string(6) "hello
"
string(5) "hello"

Первый из них имеет длину 6 символов: Hello + символ новой строки, второй выводится длиной 5 символов 'hello'.

...