0

我的代码如下所示:

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

}

我正在使用$input=fgets(STDIN)输入,但即使大小写匹配,它也不会执行相应的代码。Avar_dump($input);或 anecho $input;显示该值已正确分配(至少在我看来)。我需要在代码中添加(或修改)什么?

4

1 回答 1

0

$input=fgets(STDIN)末尾包含 \n 换行符。比较这段代码中的两个 var 转储:

$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' 字符串。

于 2019-03-10T21:26:42.890 回答