开发者

Please explain this PHP syntax

开发者 https://www.devze.com 2023-03-10 08:09 出处:网络
I\'ve looked up the functions in the manual, but I still don\'t get this. According to the person who wrote the code, if the User enters \"y\" then the function (not shown here) will execute. However,

I've looked up the functions in the manual, but I still don't get this. According to the person who wrote the code, if the User enters "y" then the function (not shown here) will execute. However, because of the !, it looks to me like the function (not shown here) will execute if the user enters something other开发者_JAVA百科 than "y".

Please explain (I"m a relative newbie so as much detail as possible would be helpful). Thanks

if(!strncasecmp(trim(fgets(STDIN)),'y',1)) 


fgets(STDIN) - reads a string from standard input(keyboard in your case).

trim - removes any spaces surrounding the user input. So if the user enters ' y' or a 'y ', it'll be converted to 'y'

strncasecmp - The user might enter either uppercase Y or lowercase y, this function helps you to compare case insensitive way. Also this function returns 0 if the comparison is successful and then you use the ! (not operator) which changes the 0 to a 1 so that the if test passes.

You could re-write it as:

if(strncasecmp(trim(fgets(STDIN)),'y',1) == 0) 


The function strncasecmp returns 0 if there is no difference between the strings compared, hence the ! to check if they're equal.

0

精彩评论

暂无评论...
验证码 换一张
取 消