9 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
一般是因?yàn)椤霸愀獾木幊獭保F(xiàn)在或以后都有可能出錯(cuò)。
如果這是一個(gè)錯(cuò)誤,請(qǐng)首先對(duì)變量進(jìn)行適當(dāng)?shù)馁x值:$ varname = 0;
如果它確實(shí)只是有時(shí)定義
if (isset($varname))
,請(qǐng)?jiān)谑褂弥皽y(cè)試它:如果是因?yàn)槠村e(cuò)了,那就糾正錯(cuò)誤
甚至可能在PHP設(shè)置中轉(zhuǎn)動(dòng)警告

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
這意味著您正在測(cè)試,評(píng)估或打印尚未分配任何內(nèi)容的變量。這意味著您要么輸入錯(cuò)誤,要么需要先檢查變量是否已初始化為某些內(nèi)容。檢查您的邏輯路徑,它可以設(shè)置在一個(gè)路徑中,但不能設(shè)置在另一個(gè)路徑中。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
我不想禁用通知,因?yàn)樗杏?,但是想避免太多打字?/p>
我的解決方案是這個(gè)功能:
function ifexists($varname){ return(isset($$varname)?$varname:null);}
所以,如果我想引用$ name和echo if exists,我只需寫:
<?=ifexists('name')?>
對(duì)于數(shù)組元素:
function ifexistsidx($var,$index){ return(isset($var[$index])?$var[$index]:null);}
在頁面中如果我想引用$ _REQUEST ['name']:
<?=ifexistsidx($_REQUEST,'name')?>

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是因?yàn)闆]有定義變量'$ user_location'。如果您正在使用任何if循環(huán)來聲明'$ user_location'變量,那么您還必須有一個(gè)else循環(huán)并定義相同的循環(huán)。例如:
$a=10;if($a==5) { $user_location='Paris';} else { }echo $user_location;
上面的代碼將創(chuàng)建錯(cuò)誤,因?yàn)閕f循環(huán)不滿足,并且在else循環(huán)中'$ user_location'未定義。仍然要求PHP回應(yīng)變量。因此,要修改代碼,您必須執(zhí)行以下操作:
$a=10;if($a==5) { $user_location='Paris';} else { $user_location='SOMETHING OR BLANK'; }echo $user_location;

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
回答“”他們?yōu)槭裁赐蝗怀霈F(xiàn)?我以前使用這個(gè)腳本多年,我從來沒有遇到任何問題?!?/strong>
大多數(shù)網(wǎng)站在“顯示所有錯(cuò)誤,但不是'通知'和'已棄用'”的“默認(rèn)”錯(cuò)誤報(bào)告下運(yùn)行是很常見的。這將在php.ini中設(shè)置并應(yīng)用于服務(wù)器上的所有站點(diǎn)。這意味著示例中使用的那些“通知”將被抑制(隱藏),而其他錯(cuò)誤(被認(rèn)為更為關(guān)鍵)將被顯示/記錄。
另一個(gè)關(guān)鍵設(shè)置是可以隱藏錯(cuò)誤(即display_errors
設(shè)置為“off”或“syslog”)。
在這種情況下會(huì)發(fā)生的事情是,error_reporting
更改為顯示通知(根據(jù)示例)和/或設(shè)置已更改為display_errors
屏幕(而不是抑制它們/記錄它們)。
為什么他們改變了?
顯而易見/最簡(jiǎn)單的答案是,有人在php.ini中調(diào)整了這些設(shè)置中的任何一個(gè),或者PHP的升級(jí)版現(xiàn)在使用了之前的不同php.ini。這是第一個(gè)看的地方。
但是,也可以覆蓋這些設(shè)置
.htconf(網(wǎng)絡(luò)服務(wù)器配置,包括虛擬主機(jī)和子配置)*
的.htaccess
在PHP代碼本身
其中任何一個(gè)也可以改變。
還有一個(gè)額外的復(fù)雜性,即Web服務(wù)器配置可以啟用/禁用.htaccess指令,因此如果.htaccess中的指令突然啟動(dòng)/停止工作,那么您需要檢查它。
(.htconf / .htaccess假設(shè)您正在以apache身份運(yùn)行。如果運(yùn)行命令行,則不適用;如果運(yùn)行IIS或其他Web服務(wù)器,則需要相應(yīng)地檢查這些配置)
摘要
php.ini中的檢查
error_reporting
和display_errors
php指令沒有改變,或者你之前沒有使用不同的php.ini。.htconf(或vhosts等)中的檢查
error_reporting
和display_errors
php指令沒有改變.htaccess中的檢查
error_reporting
和display_errors
php指令沒有改變如果.htaccess中有指令,請(qǐng)檢查.htconf文件中是否仍允許它們
最后檢查你的代碼; 可能是一個(gè)無關(guān)的圖書館; 看是否
error_reporting
和display_errors
PHP指令已經(jīng)被設(shè)置在那里。
添加回答
舉報(bào)