簡體   English   中英

為什么這個PHP代碼只是回顯“數組”?

[英]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_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);

$errormessage是一個數組,在數組上使用echo只打印Array

如果要以合適的方式打印錯誤消息,可以使用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>';

你需要漂亮打印數組。 你如何做到這一點取決於你。

如果您將數組傳遞給某些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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM