Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:函数名必须为字符串_Php - Fatal编程技术网

Php 致命错误:函数名必须为字符串

Php 致命错误:函数名必须为字符串,php,Php,我在编写关于初级PHP的视频教程时遇到了一个问题。我很难让它为我工作。当我尝试在浏览器中加载项目时,我在mailprocess.php文件中的代码第44行出现了这个错误。与此错误相关的代码的第44行是if语句的开头:if(isset($$item)&&!$empty($$item)) 但是当做视频教程的老师做同样的事情时,对他来说效果很好。所以我不明白为什么它对我不起作用。为了发布代码块格式工具,我在获取复制/粘贴的代码正确格式化的诀窍方面也遇到了问题,因此,如果它没有完全对齐,请原谅我,因为我

我在编写关于初级PHP的视频教程时遇到了一个问题。我很难让它为我工作。当我尝试在浏览器中加载项目时,我在mailprocess.php文件中的代码第44行出现了这个错误。与此错误相关的代码的第44行是if语句的开头:
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特性。现在答案应该会有帮助:)要删除投票人-删除你的投票,你投票时我正在编辑答案谢谢你,马特尔,这就解决了:)谢谢你,马特尔,这就解决了:)