我查了手冊中的函數,但是我仍然沒有得到這個。根據編寫代碼的人,如果用戶輸入「y」,則執行此功能(此處未顯示)。但是,由於!
,在我看來,如果用戶輸入的內容不是「y」,函數(此處未顯示)會執行。請解釋這個PHP語法
請解釋(我「馬相對新手,所以儘可能多的細節可能會有所幫助)。感謝
if(!strncasecmp(trim(fgets(STDIN)),'y',1))
我查了手冊中的函數,但是我仍然沒有得到這個。根據編寫代碼的人,如果用戶輸入「y」,則執行此功能(此處未顯示)。但是,由於!
,在我看來,如果用戶輸入的內容不是「y」,函數(此處未顯示)會執行。請解釋這個PHP語法
請解釋(我「馬相對新手,所以儘可能多的細節可能會有所幫助)。感謝
if(!strncasecmp(trim(fgets(STDIN)),'y',1))
fgets(STDIN)
- 從標準輸入(鍵盤,你的情況)的字符串
trim
。 - 刪除用戶輸入周圍的空間。因此,如果用戶輸入' y'
或'y '
,它會被轉換爲'y'
strncasecmp
- 用戶可以輸入大寫Y
或小寫y
,此功能可幫助您區分大小寫的方式進行比較。如果比較成功,則此函數返回0
,然後使用!
(非運算符)將0
更改爲1
,以便if
測試通過。
您可以將其重新寫爲:
if(strncasecmp(trim(fgets(STDIN)),'y',1) == 0)
功能strncasecmp返回0,如果有沒有區別的字符串之間相比,因此, !
,以檢查他們是否等於
是的。許多字符串比較函數在各種語言/庫中都會返回像這樣的字符串用於排序目的 - 如果字符串比比較字符串「小於」,則爲負值;如果比比較字符串「多」則爲正值,如果相等則爲零。 – 2011-06-03 09:07:06
由於「0」評估爲「假」...... – 2011-06-03 09:07:12
這是一個命令行應用程序的情況下? – 2011-06-03 09:05:16
是的,腳本正在創建一個shell工具 – Leahcim 2011-06-03 09:07:19