请解释一下这个PHP语法

Lea*_*cim 3 php if-statement string-comparison

我查阅了手册中的功能,但我仍然没有得到这个.根据编写代码的人,如果用户输入"y",则执行该功能(此处未显示).但是,由于这个原因,在!我看来,如果用户输入"y"以外的其他内容,则会执行此功能(此处未显示).

请解释(我是相关的新手,所以尽可能多的细节会有所帮助).谢谢

if(!strncasecmp(trim(fgets(STDIN)),'y',1)) 
Run Code Online (Sandbox Code Playgroud)

cod*_*ict 10

fgets(STDIN) - 从标准输入(在您的情况下为键盘)中读取字符串.

trim - 删除用户输入周围的任何空格.因此,如果用户输入' y'或者a 'y ',它将被转换为'y'

strncasecmp- 用户可以输入大写Y或小写y,此功能可帮助您比较不区分大小写的方式.0如果比较成功,则此函数返回,然后使用!(非运算符)更改0为a 1以便if测试通过.

您可以将其重写为:

if(strncasecmp(trim(fgets(STDIN)),'y',1) == 0) 
Run Code Online (Sandbox Code Playgroud)