2010-08-01 120 views
2

這裏是我的代碼:爲什麼這個PHP代碼只是回顯「數組」?

if(isset($_POST['check']) AND $_POST['check'] == 'First') { 
    $errormessage = array(); 

    if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4) { 
    $errormessage[] = "FEL - Vänligen ange fullständiga namn. Please enter atleast 3 or more characters for your name"; 
    } 
    if(!isEmail($_POST['usr_email'])) { 
    $errormessage[] = "FEL - Invalid email address."; 
    } 
    if(empty($errormessage)) { 
    echo 1; 
    } else { 
    echo $errormessage; // <-- 
    } 
} 

echo $errormessage運行它輸出Array。我究竟做錯了什麼?

+0

但你期望什麼? – 2010-08-01 15:44:33

回答

26

您正在對實際數組調用echo,該數組沒有隱式字符串表示形式。

爲了輸出數組的內容,你可以使用自定義輸出的print_rvar_dumpvar_export功能,或者您可以使用array_map甚至foreach循環:

print_r($errormessage); 
var_dump($errormessage); 
var_export($errormessage); 

foreach($errormessage as $error) 
    echo $error . '<br/>'; 

array_map('echo', $errormessage); 
+9

或'var_dump'或者如果你想有數組代碼'var_export'。正確指出,@尼克奇是 – NikiC 2010-08-01 15:18:34

+0

。 – 2010-08-01 15:19:20

+0

對於明確的答案+1 – PHP 2010-12-06 06:13:07

0

您需要漂亮地打印的陣列。你如何做到這一點取決於你。

如果你傳遞數組一些JavaScript,你可能希望將其編碼爲JSON數組:

echo json_encode($errormessage); 
7

$errormessage是一個數組版畫只是Array一個數組,並使用echo

如果你想在一個體面的方式來打印你的錯誤信息,您可以使用foreach迭代消息並打印每條消息:

echo '<ul>'; 
foreach ($errormessage as $message) { 
    echo '<li>'.htmlspecialchars($message).'</li>'; 
} 
echo '</ul>'; 

或者你甚至可以使用一些先進的陣列處理像array_mapimplode到這樣做,它等效於先前所示,當陣列中包含的至少一個項目:

echo '<ul><li>' . implode('</li><li>', array_map('htmlspecialchars', $errormessage)) . '</li></ul>'; 
0
$errormessage = array(); 
$errormessage[] = "..."; 

兩者都將$ errormessage定義爲數組數據類型。 Echo從字符串或數字格式打印數據。爲了從陣列打印數據或者使用的print_r通過數組的成員建議或環和使用echo

-1

使用代碼這樣

if(isset($_POST['check']) AND $_POST['check'] == 'First') { 
$errormessage = array(); 
if(empty($_POST['full_name']) || strlen($_POST['full_name']) < 4) 
{ 
$errormessage['error_what_ever_key_you_want'] = "FEL - Vänligen ange fullständiga namn. Please enter atleast 3 or more characters for your name"; 
} 
if(!isEmail($_POST['usr_email'])) { 
$errormessage['error_what_ever_key_you_want'] = "FEL - Invalid email address."; 
} 
if(!empty($errormessage)){ 
echo $errormessage['error_what_ever_key_you_want']; // <-- 
} 
} 
0

要看看裏面是什麼,你的變量只是做

print_r($errormessage); 
    // or 
    var_dump($errormessage);