我收到此错误:“致命错误:无法在第18行的D:\ Programas \ wamp \ www \ away \ index.php中的写入上下文中使用函数返回值”。第18行是if语句。
任何人都可以帮我解决这个问题吗?感谢。
$vars = array("first_date_month", "first_date_day", "last_date_month", "last_date_day", "resume_date_month", "resume_date_day", "pay_date_month", "pay_date_day", "pay_time_hour", "pay_time_minutes");
$err_flag = false;
$i = 0;
while ($i < count($vars) and $err_flag == false)
{
if ( (!isset($_GET($vars[$i])) or ($_GET[$vars[$i] == "0") )
$err_flag = true;
$i++;
}
答案 0 :(得分:8)
也许我看不太清楚,但是:
if((!isset($ _ GET($ vars [$ i]))或($ _GET [$ vars [$ i] ==“0”))
你有一个非常糟糕的括号和方括号混合。
没有这样的东西$_GET()
你必须纠正错误。
答案 1 :(得分:4)
你的代码很乱。
$ _ GET是一个关联数组而不是函数(您使用的函数调用语法将$ vars [$ i]作为参数传递)。在第二个$ _GET中,有一个]缺失。
第18行应该是:
if ( (!isset($_GET[$vars[$i]]) or ($_GET[$vars[$i]] == "0") )
答案 2 :(得分:2)
我对它的看法:
$vars = array("first_date_month", "first_date_day", "last_date_month", "last_date_day", "resume_date_month", "resume_date_day", "pay_date_month", "pay_date_day", "pay_time_hour", "pay_time_minutes");
foreach ($vars as $var) {
if ($err_flag = empty($_GET[$var]))
break;
}
8)
我认为标记的答案已经......很好..回答了代码中的问题,所以只是抛出一些优化:
答案 3 :(得分:0)
$_GET
是一个变量,一个数组 - 而不是一个函数。
这意味着您必须使用[]
的数组访问来获取它包含的数据。
所以:
$_GET[$vars[$i]]
而不是
$_GET($vars[$i])
你第一次使用$ _GET。
并且,第二次,你忘了关闭一个]
;这意味着您需要使用:
$_GET[$vars[$i]]
而不是
$_GET[$vars[$i]
最后,while循环应该如下所示:
while ($i < count($vars) and $err_flag == false)
{
if ( !isset($_GET[$vars[$i]]) or $_GET[$vars[$i]] == "0" ) {
$err_flag = true;
}
$i++;
}
注意我还在if条件的主体周围添加了{}
;这样,如果你不得不添加一些东西,你就不会忘记忘记那些; - )
答案 4 :(得分:0)
将第18行if...
更改为:
if ( (!isset($vars[$i])) or ($vars[$i] == "0") )
$err_flag = true;
$i++;
这主要是因为我 - 这纯粹是个人的,我怀疑 - 不喜欢在整个剧本中使用$_GET[...]
;分配:
$variable_from_GET[] = $_GET['variable_name'];
然后在您所使用的条件中使用$variable_from_GET
数组变量,因为您有一个$vars
数组,所以 。