php中print不是函數的案例分析?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
成都網站建設哪家好,找創新互聯公司!專注于網頁設計、網站建設、微信開發、小程序設計、集團成都企業網站定制等服務項目。核心團隊均擁有互聯網行業多年經驗,服務眾多知名企業客戶;涵蓋的客戶類型包括:木制涼亭等眾多領域,積累了大量豐富的經驗,同時也獲得了客戶的一致贊譽!這個源自于一個看似很詭異的問題:
if (print("1\n") && print("2\n") && print("3\n") && print("4\n")) { ; }
你期待這段代碼輸出什么呢?
實際上的輸出是:
4 111
很多時候我們會忽略了print是一個語法結構(language constructs), 他并不是一個函數, 參數的list并不要求有括號(即使你寫了括號, 括號也會在語法分析階段被忽略), 他只是一個永遠返回結果是1的”表達式(expr)”:
expr : T_PRINT expr | '(' expr ')' ; 所以其實上面的代碼在php看來是: if (print ("1\n" && print ("2\n" && print ("3\n" && print "4\n")))) { ; }
所以就是, 輸出4, 然后輸出 “3\n” && print的結果1 , 然后輸出 “2\n” && 1, 最后是 “1\n” && 1
而如果想要達到上面代碼的本身想要的意圖, 我們應該這么寫:
if ((print "1\n") && (print "2\n") && (print "3\n") && (print "4\n")) { ; }
感謝各位的閱讀!看完上述內容,你們對php中print不是函數的案例分析大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注創新互聯行業資訊頻道。
文章標題:php中print不是函數的案例分析-創新互聯
分享鏈接:http://newbst.com/article44/dgggee.html
成都網站建設公司_創新互聯,為您提供外貿建站、虛擬主機、營銷型網站建設、網站改版、網站排名、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯