Php 致命错误:函数名必须为字符串
我在编写关于初级PHP的视频教程时遇到了一个问题。我很难让它为我工作。当我尝试在浏览器中加载项目时,我在mailprocess.php文件中的代码第44行出现了这个错误。与此错误相关的代码的第44行是if语句的开头:Php 致命错误:函数名必须为字符串,php,Php,我在编写关于初级PHP的视频教程时遇到了一个问题。我很难让它为我工作。当我尝试在浏览器中加载项目时,我在mailprocess.php文件中的代码第44行出现了这个错误。与此错误相关的代码的第44行是if语句的开头:if(isset($$item)&&!$empty($$item)) 但是当做视频教程的老师做同样的事情时,对他来说效果很好。所以我不明白为什么它对我不起作用。为了发布代码块格式工具,我在获取复制/粘贴的代码正确格式化的诀窍方面也遇到了问题,因此,如果它没有完全对齐,请原谅我,因为我
if(isset($$item)&&!$empty($$item))
但是当做视频教程的老师做同样的事情时,对他来说效果很好。所以我不明白为什么它对我不起作用。为了发布代码块格式工具,我在获取复制/粘贴的代码正确格式化的诀窍方面也遇到了问题,因此,如果它没有完全对齐,请原谅我,因为我是新手,正在努力学习,我发现PHP相当困难。如果能帮我把这件事做好,我将不胜感激
以下是我收到的错误的浏览器输出:
以下是我的mailprocess.php文件和代码:
<?php
$suspect = false;
$pattern = '/Content-Type:|Bcc:|Cc:/i'; //Perl compatible reg-x to filter
$empty = false;
function isSupect($val, $pattern, &$suspect) {
if (is_array($val)) {
foreach ($val as $item) {
isSuspect($item, $pattern, $suspect);
}
}else {
if (preg_match($pattern, $val)) {
$suspect = true;
}
}
isSuspect($_POST, $pattern, $suspect);
}
if (!$suspect) {
foreach ($_POST as $key => $value) {
$temp = is_array($value) ? $value : trim($value); //removes white space
if (empty($temp) && in_array($key, $required)) {
$missing[] = $key;
$$key = '';
} elseif (in_array($key, $expected)) {
$$key = $temp;
}
}
}
if (!$suspect && !$empty['$email']) {
$validemail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($validemail) {
$headers .= "\r\nReply-to: $validemail";
} else {
$errors['email'] = true;
}
}
if (!$suspect && !$missing && !$errors){
$message = ' ';
foreach ($expected as $item) {
if (isset($$item) && !$empty($$item)){
$val = $$item;
} else {
$val = 'Not selected';
}
if (is_array($val)){
$val = implode(', ', $val);
}
$item = str_replace(array('_', '-'), '', $item);
$message .= ucfirst($item) . ": $val\r\n\r\n";
}
$message = wordwrap($message, 70);
$mailSent = true;
}
这只是一个打字错误。您有额外的美元符号。
只需在
之后删除美元符号$
代码>
更改此设置
if(设置($$item)和&!$empty($$item))
到
if(isset($$item)和&!empty($$item))
这只是一个输入错误。您有额外的美元符号。
只需在之后删除美元符号$
代码>
更改此设置
if(设置($$item)和&!$empty($$item))
到
if(设置($$item)&&!空($$item))
应该是
if (isset($$item) && !empty($$item))
只是一个打字错误$空()
应该是
if (isset($$item) && !empty($$item))
只是一个打字错误$空()。这是要有变量名称抱歉,Tourmash,但这是讲师在他的代码中所做的(见最后一张图),他这样做的原因是他将其设置为“变量”。我已经修复了这个问题,抱歉,我不知道这个php特性。现在答案应该有帮助:)要删除投票人-删除你的投票,我正在编辑答案,而你没有投票。这是要有变量名称抱歉,Tourmash,但这是讲师在他的代码中所做的(见最后一张图),他这样做的原因是他将其设置为“变量”。我已经修复了这个问题,抱歉,我不知道这个php特性。现在答案应该会有帮助:)要删除投票人-删除你的投票,你投票时我正在编辑答案谢谢你,马特尔,这就解决了:)谢谢你,马特尔,这就解决了:)