PHP错误:函数名称必须是字符串
我在PHP代码的顶部添加了以下几行,但是会引发错误:
致命错误:函数名称必须是第2行/home/reg.php中的字符串
if ($_COOKIE('CaptchaResponseValue') == "false")
{
header('location:index.php');
return;
}
?>
我尝试了:$_COOKIE("CaptchaResponseValue")。cookie已成功设置并且可用。 为什么在使用$_COOKIE时出现错误?
RKh asked 2020-07-13T02:59:43Z
8个解决方案
116 votes
应该是$_COOKIE['name'],而不是$_COOKIE('name')
$ _COOKIE是一个数组,而不是一个函数。
Niyaz answered 2020-07-13T03:00:25Z
17 votes
在编程语言或脚本语言中使用括号通常意味着它是一个函数。
但是,PHP中的_myFunction _myFunction123 myFunction不是函数,它是一个数组。 要访问数组中的数据,请使用方括号(“ [”和“]”),该方括号表示从中获取数据的索引。 因此,通过执行$,您基本上是在说:“给我来自索引'test'的数据。
现在,就您的情况而言,您有两种可能性:(1)您想查看它是否为错误-通过查看cookie来内部;或(2)看它是否不存在。
为此,使用isset函数,该函数基本上检查是否设置了变量。
例
if ( isset($_COOKIE['test'] ) )
如果要检查该值是否为false且已设置,则可以执行以下操作:
if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )
您要记住的一件事是,如果第一个测试失败,它甚至不会费心检查下一个语句是否为AND(_myFunction _myFunction123 myFunction)。
并解释为什么您实际上会收到错误“函数必须是字符串”,请查看此页面。 这是关于PHP中函数的基本创建的,您必须记住的是PHP中的函数只能包含某些类型的字符,其中_myFunction _myFunction123 myFunction不是其中之一。 因为在PHP中$表示一个变量。
函数可能看起来像这样:_myFunction _myFunction123 myFunction以及其他许多模式,但是将其与$和%之类的字符混合将不起作用。
Filip Ekberg answered 2020-07-13T03:01:22Z
5 votes
请尝试使用带有$_COOKIE(而不是括号)的方括号。 像这样:
if ($_COOKIE['CaptchaResponseValue'] == "false")
{
header('Location: index.php');
return;
}
?>
我也更正了您的位置标头调用。
Asaph answered 2020-07-13T03:01:46Z
2 votes
如果您想确定是否设置了cookie ...请使用
if (isset($_COOKIE['cookie']))
Shankar R10N answered 2020-07-13T03:02:07Z
2 votes
它将是$_COOKIE['CaptchaResponseValue'],而不是$_COOKIE('CaptchaResponseValue')
Shahadat Atom answered 2020-07-13T03:02:27Z
1 votes
在PHP.js中,$ _COOKIE是一个函数;-)
function $_COOKIE(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length).replace(/\+/g, '%20'));
}
return null;
}
通过[http://phpjs.org/functions/setcookie:509]
PJ Brunet answered 2020-07-13T03:02:51Z
0 votes
关于括号如何使用的有用解释(除了上面的Filip Ekberg有用的答案),可以在简短的论文《编程语言中的括号》中找到。
Waldhorn answered 2020-07-13T03:03:11Z
-2 votes
require_once '../config/config.php';
require_once '../classes/class.College.php';
$Response = array();
$Parms = $_POST;
$Parms['Id'] = Id;
$Parms['function'] = 'DeleteCollege';
switch ($Parms['function']) {
case 'InsertCollege': {
$Response = College::InsertCollege($Parms);
break;
}
case 'GetCollegeById': {
$Response = College::GetCollegeById($Parms['Id']);
break;
}
case 'GetAllCollege': {
$Response = College::GetAllCollege();
break;
}
case 'UpdateCollege': {
$Response = College::UpdateCollege($Parms);
break;
}
case 'DeleteCollege': {
College::DeleteCollege($Parms['Id']);
$Response = array('status' => 'R');
break;
}
}
echo json_encode($Response);
?>
prasanth answered 2020-07-13T03:03:26Z