我正在使用便攜式WAMP軟件包「USB Web服務器」。它給錯誤,如果我嘗試直接呼應了一些變量,例如PHP變量在定義之前不會打印
<?php
echo $abc;
?>
我得到的錯誤是:「通知:未定義的變量:ABC」
這將很好地工作:
<?php
$abc = "foo";
echo $abc;
?>
可以修復這個錯誤嗎? 我一定會使用便攜式WAMP軟件包,因爲我沒有管理員權限,所以我無法安裝任何其他軟件包。
我正在使用便攜式WAMP軟件包「USB Web服務器」。它給錯誤,如果我嘗試直接呼應了一些變量,例如PHP變量在定義之前不會打印
<?php
echo $abc;
?>
我得到的錯誤是:「通知:未定義的變量:ABC」
這將很好地工作:
<?php
$abc = "foo";
echo $abc;
?>
可以修復這個錯誤嗎? 我一定會使用便攜式WAMP軟件包,因爲我沒有管理員權限,所以我無法安裝任何其他軟件包。
好吧,除了爲什麼我不知道你爲什麼要回聲一些沒有定義的東西,你沒有得到一個錯誤,你會得到一個通知。
如果你想做到這一點,你必須忽略通知在生產環境中,一樣可以read here是這樣工作的:
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL^E_NOTICE);
變量確實沒有定義。你想要發生什麼?
如果你不想看到錯誤,那麼定義它。
<?php
$abc = '';
echo $abc;
?>
如果未定義它應該打印什麼?
您可以檢查它是否被定義嘗試之前打印
if(isset($abc))
{
echo $abc;
}
您還可以通過在該行的前面附加一個@符號
@echo $abc;
取消錯誤但是,這是不推薦,可能會變慢。
那麼,答案是修復代碼,以便您不訪問尚未定義的變量。如果你需要,以防止它打印錯誤這是不正確的解決方案(*),那麼你就可以在你的錯誤報告關閉通知:
error_reporting(E_ALL^E_NOTICE);
正確的解決方法是修復的代碼。
,以呼應其
如果之前在頁面
檢查它是否存在頂部取出的通知和警告 寫
error_reporting(E_ALL^E_NOTICE);
(isset($ ABC)) { 回聲$ abc }
你當然也可以檢查變量是否存在。
<?php if (isset($myvar)) echo $myvar; ?>
銅 羅馬
您還可以抑制在echo命令的警告。一般禁用警告是危險的。
<?php
@echo $abc;
?>
一個你在編程學習是最早的原則聲明變量。因此,修復此錯誤,聲明您的變量。
但是,它可能發生在多種情況下,您不知道該變量是否已被定義或仍然想要避免該錯誤。
在這些情況下,檢查其存在第一:
// print $abc if set, or print an empty string/nothing
echo isset($abc) ? $abc : '';
isset($abc) && print $abc;
if (isset($abc)) echo $abc;
上面的三條線會給完全相同的結果彼此。
目前尚不清楚你想要什麼。顯然,在定義之前你不能'回顯'一個變量,因爲它不存在。這不是錯誤,這是正常行爲。那麼你爲什麼要'echo $ abc'? – 2011-05-25 12:43:45
@Felix Kling,實際上我在另一臺PC上寫代碼,如果我沒有定義變量而沒有給出任何通知,但現在我將這些文件複製到另一臺計算機上,並且我收到了很多這些消息。無論如何要關閉通知? – sabba 2011-05-25 12:47:11
只要你沒有分配任何東西給變量,它就包含'NULL',如果打印出來就會變成''「'空字符串。該通知只是用於調試目的的副產品,因爲通常情況下這不是您想要的。所以,*你爲什麼要它*? – mario 2011-05-25 12:47:24