Funktion verarbeitet das array nicht

Duergy

Mitglied
Hallo Gemeinde,

ich grübel aktuell warum meine Funktion das Array nicht versteht.
Zur Info ich benutze die Template Engine Smarty, das sollte aber nicht das Problem sein.

In dem Beispiel das ich euch Zeige geht es um die Registrierung eines neuen Mitglieds.
Leider wird nicht wie Gewünscht der Fehler in einer Liste angezeigt. Sonder er Ignoriert das "is_array" und Zeigt mir dann auf der Webseite einfach nur "array" an.

Hier nun die relevanten Schnipsel
Sollte das Formular abgeschickt werden
PHP:
	if(empty($_POST['vorname'])){$err[]="Sie haben keinen Vornamen angegeben";}
	if(!empty($err)){
		$msg=msg_box("err","Fehler bei der Registrierung","".$err."");
		$smarty->assign('msg', $msg);
		$sm_content=$smarty->fetch('content_register.tpl');
	}

Hier die Funktion msg_box()
PHP:
function msg_box($art, $titel, $msg){
global $smarty;
	$smarty->assign('msg_title', $titel);
	if(is_array($msg)){
		$return_msg="<ul>";
			while($msg){
				$return_msg.="<li>".$msg."<li>";
			}
		$return_msg.="</ul>";
	}
	else{
		$return_msg="".$msg."";
	}
	$smarty->assign('msg_content', $return_msg);
	return $smarty->fetch('core_content_msg.tpl');
}
 
Sonder er Ignoriert das "is_array"

Was nicht passieren würde wenn du auch ein array übergeben würdest.
Du übergibst aber einen string:
PHP:
"".$err.""

Wie so oft hätte auch hier ein var_dump() geholfen.
PHP:
$arr = array("foobar");

foo($arr);
foo("".$arr."");

function foo($arr){
	var_dump($arr);
}
Code:
array
  0 => string 'foobar' (length=6)

string 'Array' (length=5)
 
Zurück