PHP 错误:函数名称必须是字符串

php
2022-08-30 09:08:56

我在PHP代码的顶部添加了以下行,但它引发了一个错误:

致命错误:函数名称必须是 /home/reg.php 第 2 行中的字符串

<?php
if ($_COOKIE('CaptchaResponseValue') == "false")
{
    header('location:index.php');
    return;
}
?>

我试过了:。Cookie 已成功设置并可用。为什么我在使用时会给我一个错误?$_COOKIE("CaptchaResponseValue")$_COOKIE


答案 1

它应该是 ,而不是$_COOKIE['name']$_COOKIE('name')

$_COOKIE是一个数组,而不是一个函数。


答案 2

在编程语言或脚本语言中使用括号通常意味着它是一个函数。

然而,在php中不是一个函数,它是一个数组。要访问数组中的数据,请使用方括号(“[”和“]”),它表示要从哪个索引获取数据。因此,通过这样做,你基本上是在说:“给我指数'测试'的数据。$_COOKIE$_COOKIE['test']

现在,在你的情况下,你有两种可能性:(1)你想看看它是否是假的 - 通过查看饼干内部,或者(2)看看它是否甚至不存在。

为此,您可以使用 isset 函数,该函数基本上检查变量是否已设置。

if ( isset($_COOKIE['test'] ) )

如果要检查该值是否为假并且已设置,则可以执行以下操作:

if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )

您可以记住的一件事是,如果第一个测试失败,它甚至不会费心检查下一个语句(如果它是AND( )。&&

要解释为什么您实际上会收到错误“函数必须是字符串”,请查看此页面。这是关于在PHP中基本创建函数,您必须记住的是,PHP中的函数只能包含某些类型的字符,而这些字符不是其中之一。因为在PHP中表示一个变量。$$

函数可能看起来像这样:在许多其他模式中也是如此,但是将其与$ 和%等字符混合将不起作用。_myFunction _myFunction123 myFunction


推荐