我正在尝试将消息插入函数
function addMessage($item) {
if ($result) {
$message = '<p class="ok">
<span> Item added </span>
</p>
';
header("Refresh: 2; url=?page=$item");
}
else{
$message = '<p class=not><span>There is an error blah blah</span></p>';
}
return $message;
}
当我使用它时:addMessage('contents')它只返回第二个条件。我该如何解决这个问题?
答案 0 :(得分:5)
您正在检查$result
内的if
,但在此之前既未分配任何值,也未将其声明为global
。我想你打算检查$item
:
if ($item) {
答案 1 :(得分:1)
脚本中是否定义了$result
?请改用if ($item)
。
要非常小心,PHP允许使用未定义的变量。
答案 2 :(得分:1)
茉莉花
您的函数总是返回第二个条件,因为您没有为函数内部的$result
赋值,或者在调用函数时(如其他单词提到的unicornaddict) 的
为了让您的代码按照您可能想要的方式运行,您的功能应该是这样的:
function addMessage($item, $result) {
if ($result) { // It will return this condition, case $result has any value assigned and is different from FALSE (boolean)
$message = '<p class="ok">
<span> Item added </span>
</p>
';
header("Refresh: 2; url=?page=$item");
}
else{ // It will return this condition, case $result doesn't has any value assigned or is equal to FALSE (boolean)
$message = '<p class="not"><span>There is an error blah blah</span></p>';
}
return $message;
}
然后你可以调用像你这样已经调用它的函数,但是不要忘记包含一个变量或值,它应该作为函数内的$result
变量来处理
addMessage('contents', $result);
注意:强>
在$message
变量中,您有<p class=not>
,且应为<p class="not">
。
请记住,在将任何实际输出发送到浏览器之前,必须先调用header()
。
希望它有所帮助。
答案 3 :(得分:0)
他们说了什么: - )
顺便说一下,一个像样的IDE(比如Zend)会分析你的代码并警告你这样的事情。
此类静态代码分析称为“linting”,因此google为“PHP lint”或查看Is there a static code analyzer [like Lint] for PHP files?等问题
但是这个代码示例非常小,我想你是一个初学者(没有进攻实习 - 我们都必须从某个地方开始),所以做了大量的阅读并收集了大量的工具和经验。
例如,一个像样的IDE(如Zend或Eclipse PDT)可以让你逐步执行你的代码,行nby行,并检查每个变量的值,然后你应该看到问题。
欢迎使用PHP并祝您好运!