如果$ a(来自$ _POST超级全局)的输入大于定义的最大值($ max1和$ max2),我希望我的页面显示错误消息“lorem ipsum”。所以这就是我所做的:
$max1 = 2.7432;
$max2 = 274.32;
$a = $_REQUEST['a'];
function maximum(){
if ($a>$max1 || $a>$max2){
echo "<script language=javascript> alert(\"Lorem Ipsum\");</script>";
return maximum();
}
}
然后我就像这样调用函数:
if(($fred=="fred") && ($george=="george") {
//check validity of input first by calling maximum;
maximum();
}
这不起作用!我究竟做错了什么?
答案 0 :(得分:4)
这是一个范围问题。 $a
,$max1
和$max2
不在您的函数范围内。您需要将其作为参数传递给它,使其在您的函数中可用(即在范围内)。
此外,您的功能不起作用。简而言之,您需要从函数中返回字符串,然后在调用函数时捕获或回显它。
$max1 = 2.7432;
$max2 = 274.32;
$a = $_REQUEST['a'];
function maximum($a, $max1, $max2){
if ($a>$max1 || $a>$max2){
return "<script language=javascript> alert(\"Lorem Ipsum\");</script>";
}
}
if(($fred=="fred") && ($george=="george")) {
//check validity of input first by calling maximum;
echo maximum($a, $max1, $max2);
}
答案 1 :(得分:0)
请改变你的功能,如下所示,并检查评论你做了什么错误
function maximum()
{
global $max1,$max2,$a;//make $a,$max1,$max2 available inside this function
if ($a > $max1 || $a > $max2) {
echo "<script language=javascript> alert(\"Lorem Ipsum\");</script>";
//return maximum(); remove this line. Otherwise itwill go infinte loop
}
}