打開PHP提示“Parse error: syntax error, unexpected end of file in”(PHP提示“Notice:Undefined index:submit in”)
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
前段時間做了一個注冊機,一直沒注意在PHP7.4中運行的問題,感覺7.2或者5.6均可運行,就沒注意,這幾天測試,發現在PHP7.4中竟然出錯,提示“Parse error: syntax error, unexpected end of file in” 如下圖
我感覺我的語法并沒啥錯誤,感覺自我良好,如果發現php的語法本身沒有什么錯誤,就有可能是使用了短標簽,例如:
<? }?>
Parse error: syntax error, unexpected end of file in解決方案:
既然上面說了短標簽的問題,可以在php.ini中設置short_open_tag = On
科普一下short_open_tag 是什么?
決定是否允許使用代碼開始標志的縮寫形式(<? ?> )。 如要和 XML 結合使用 PHP,可以禁用此選項以便于嵌入使用<?xml ?> ; 否則還可以通過php來輸出,例如:<?php echo '<?xml version="1.0"'; ?> ; 如禁用了,必須使用 PHP 代碼開始標志的完整形式(<?php ?> )。
注意:本指令也會影響到縮寫形式 <?= ,它和 <? echo 等價。使用此縮寫需要short_open_tag 的值為 On。
PHP出現Notice:Undefined index:submit in問題
上面處理完成以后,打開的時候依然會提示一段錯誤 Notice: Undefined index: submit in? 如下圖
解決方式是將 display_errors = Off 改為display_errors = On? 如下圖
解決辦法也可以如下:
在程序開頭加一句:
error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);
或者? 修改php.ini
error_reporting = E_ALL & ~E_NOTICE
延伸閱讀有關error_reporting()函數:
error_reporting() 設置 PHP 的報錯級別并返回當前級別。
; 錯誤報告是按位的。或者將數字加起來得到想要的錯誤報告等級。
; E_ALL - 所有的錯誤和警告
; E_ERROR - 致命性運行時錯
; E_WARNING - 運行時警告(非致命性錯)
; E_PARSE - 編譯時解析錯誤
; E_NOTICE - 運行時提醒(這些經常是是你的代碼的bug引起的,
;也可能是有意的行為造成的。(如:基于未初始化的變量自動初始化為一個
;空字符串的事實而使用一個未初始化的變量)
; E_CORE_ERROR - 發生于PHP啟動時初始化過程中的致命錯誤
; E_CORE_WARNING - 發生于PHP啟動時初始化過程中的警告(非致命性錯)
; E_COMPILE_ERROR - 編譯時致命性錯
; E_COMPILE_WARNING - 編譯時警告(非致命性錯)
; E_USER_ERROR - 用戶產生的出錯消息
; E_USER_WARNING - 用戶產生的警告消息
; E_USER_NOTICE - 用戶產生的提醒消息
使用方法:
error_reporting(0);//禁用錯誤報告
error_reporting(E_ALL ^ E_NOTICE);//顯示除去 E_NOTICE 之外的所有錯誤信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//顯示除去E_WARNING E_NOTICE 之外的所有錯誤信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//顯示運行時錯誤,與error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//顯示所有錯誤
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!