![](/img/trans.png)
[英]Php: Why does my code echo all values in the table rather than just a subset of those values?
[英]Why does this PHP code just echo “Array”?
這是我的代碼:
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
。 我究竟做錯了什么?
您在實際數組上調用echo
,該數組沒有隱式字符串表示形式。
要輸出數組的內容,您可以使用print_r
, var_dump
或var_export
函數或自定義輸出,您可以使用array_map
甚至是foreach
循環:
print_r($errormessage);
var_dump($errormessage);
var_export($errormessage);
foreach($errormessage as $error)
echo $error . '<br/>';
array_map('echo', $errormessage);
$errormessage
是一個數組,在數組上使用echo
只打印Array
。
如果要以合適的方式打印錯誤消息,可以使用foreach
迭代消息並打印每條消息:
echo '<ul>';
foreach ($errormessage as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul>';
或者您甚至可以使用像array_map
和implode
這樣的高級數組處理來執行類似於以前在數組包含至少一個項目時顯示的內容:
echo '<ul><li>' . implode('</li><li>', array_map('htmlspecialchars', $errormessage)) . '</li></ul>';
你需要漂亮打印數組。 你如何做到這一點取決於你。
如果您將數組傳遞給某些JavaScript,您可能希望將其編碼為JSON數組:
echo json_encode($errormessage);
$errormessage = array();
$errormessage[] = "...";
兩者都將$ errormessage定義為數組數據類型。 Echo以字符串或數字格式打印數據。 要從數組打印數據,請按建議使用print_r,或循環遍歷數組成員並使用echo
要查看變量內部的內容,請執行此操作
print_r( $errormessage );
// or
var_dump( $errormessage );
像這樣使用代碼
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']; // <--
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.