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

RKh*_*RKh 45 php

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

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

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

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

Niy*_*yaz 117

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

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


Fil*_*erg 17

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

但是$_COOKIE在php中不是一个函数,它是一个数组.要访问数组中的数据,可以使用方括号('['和']')来表示从哪个索引获取数据.所以,$_COOKIE['test']你基本上是在说:"给我索引'测试'的数据.

现在,在您的情况下,您有两种可能性:(1)要么想要查看它是否为假 - 通过查看cookie内部或(2)看看它是否不存在.

为此,您使用isset函数,它基本上检查变量是否设置.

if ( isset($_COOKIE['test'] ) )
Run Code Online (Sandbox Code Playgroud)

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

if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )
Run Code Online (Sandbox Code Playgroud)

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

并解释为什么你实际上得到错误"函数必须是一个字符串",请看这个页面.它是关于PHP中函数的基本创建,你必须记住的是PHP中的函数只能包含某些类型的字符,而$不是其中之一.因为在PHP中$代表一个变量.

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


Asa*_*aph 5

尝试使用方括号$_COOKIE,而不是括号.像这样:

<?php
if ($_COOKIE['CaptchaResponseValue'] == "false")
{
    header('Location: index.php');
    return;
}
?>
Run Code Online (Sandbox Code Playgroud)

我也纠正了你的位置标题调用.