[英]PHP variable won't print before defining it
我正在使用便攜式 WAMP package“USB web 服務器”。 例如,如果我嘗試直接回顯某些變量,則會出錯
<?php
echo $abc;
?>
我得到的錯誤是:“注意:未定義的變量:abc”
這將正常工作:
<?php
$abc = "foo";
echo $abc;
?>
是否可以修復此錯誤? 我必須使用便攜式 WAMP package,因為我沒有管理員權限,所以我不能安裝任何其他 package。
好吧,除了為什么我不知道為什么要回顯未定義的內容之外,您沒有收到錯誤,而是收到了通知。
如果你想這樣做,你必須忽略生產環境中的通知,就像你可以在這里閱讀的那樣:
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
如果沒有定義它應該打印什么?
您可以在嘗試打印之前檢查它是否已定義
if(isset($abc))
{
echo $abc;
}
您還可以通過在行前附加 @ 符號來抑制錯誤
@echo $abc;
但不建議這樣做,可能會更慢。
刪除通知和警告寫
error_reporting(E_ALL ^ E_NOTICE);
在頁面頂部
該變量確實沒有定義。 你到底想發生什么?
如果您不想看到錯誤,請定義它。
<?php
$abc = '';
echo $abc;
?>
好吧,答案是修復代碼,這樣您就不會訪問尚未定義的變量。 如果您需要防止它打印不是正確解決方案的錯誤 (*),那么您可以關閉錯誤報告中的通知:
error_reporting(E_ALL ^ E_NOTICE);
正確的解決方案是修復代碼。
在回顯之前檢查它是否存在
if( 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;
上面的三行將給出完全相同的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.