任何人都能告诉我这个功能有什么问题吗?
我写了这个函数来从$ reg_errors数组中获取错误,并在同一个脚本中的不同位置使用这些错误。
function testimonialErrors ($reg_errors) {
if ( !empty($reg_errors) ) {
foreach ( $reg_errors AS $error) {
echo "<li>$error</li>";
}
}
return $error;
}
然后我这样调用了这个函数..
if ( !empty($reg_errors) ) {
echo '<div class="error">
<img src="images/error.png" />
<h3>Errors,</h3>
<ul>';
echo testimonialErrors($reg_errors);
echo '</ul>
</div>';
}
但是这段代码不起作用。
更新:这是我的新代码
function tesimonialErrors ($reg_errors) {
if ( !empty($reg_errors) ) {
foreach ( $reg_errors AS $error) {
echo "<li>$error</li>";
}
}
return $error;
}
并称之为
if ( !empty($reg_errors) ) {
echo '<div class="error">
<img src="images/error.png" />
<h3>Errors,</h3>
<ul>';
tesimonialErrors($reg_errors);
echo '</ul>
</div>';
}
答案 0 :(得分:4)
你应该研究variable scope。此时,$reg_errors
未在函数范围内定义。您可以将其传递给函数:
function tesimonialErrors ($reg_errors) {
...
并称之为:
tesimonialErrors($reg_errors);
答案 1 :(得分:0)
为什么不这样做?
if ( !empty($reg_errors) ) {
echo '<div class="error">
<img src="images/error.png" />
<h3>Errors,</h3>
<ul>
<li>';
echo implode('</li><li>', $reg_errors);
echo ' </li>
</ul>
</div>';
}
答案 2 :(得分:-1)
正如@Akam指出的那样,$ reg_errors属于全局范围,因此您需要使用global $reg_errors;
或$GLOBALS['reg_errors']
。
另外我建议将函数名tesimonialErrors
更改为正确的英语(我假设它是testimonialErrors
)。否则,The Next Guy最终可能会将其发布在TDWTF上。
答案 3 :(得分:-1)
function testimonialErrors ($reg_errors) {
if ( !empty($reg_errors) ) {
foreach ( $reg_errors AS $error) {
echo "<li>$error</li>";
}
}
return $error; // ****remove return statement****
}
答案 4 :(得分:-2)
将global $reg_errors;
添加到您的函数中。
function testimonialErrors () {
global $reg_errors;
if (!empty($reg_errors)) {
foreach ($reg_errors as $error) {
echo "<li>$error</li>";
}
}
}