Php 如何在函数内部调用函数

Php 如何在函数内部调用函数,php,Php,出现错误:调用未定义的函数tim() 我如何解决这个问题 public function SelectEmailLimit(){ $stmt = $this->conn->prepare("SELECT fname, mname, lname, created_at FROM ms_membership ORDER BY id DESC LIMIT 4"); $stmt->execute(); $row =array(); $stmt->

出现错误:调用未定义的函数tim() 我如何解决这个问题

public function SelectEmailLimit(){
    $stmt = $this->conn->prepare("SELECT fname, mname, lname, created_at FROM ms_membership ORDER BY id DESC LIMIT 4");

    $stmt->execute();
    $row =array();
    $stmt->bind_result($fname, $mname, $lname,$created);// can write any name to bind the result shouldnot be same as table row name
     while ($stmt->fetch())
      {
       $create =tim($created);

        $row[] = array(

                    'fname' => $fname,
                    'mname' => $mname,
                    'lname' => $lname,
                    'created' => $create
                    );

       }

    function tim($created){
      return me;
    }
    $stmt->close();
     return $row;


    }

PHP没有函数的作用域,所以“函数中的函数”不是“一件事”。当第一次命中该行代码时,
函数tim
将被动态地全局定义。这意味着:

  • 在定义它之前不能调用它
  • 如果两次调用
    SelectEmailLimit
    ,PHP将尝试两次定义函数,这将导致错误
  • PHP唯一类似于您需要的是匿名函数:

    $tim = function ($created) { return me; };
    
    ...
    
    $create = $tim($created);
    

    显然,在调用之前,您还需要定义这些功能。

    定义
    tim
    函数外部
    SelectEmailLimit
    创建
    tim
    函数外部
    SelectEmailLimit
    。而且
    me
    tim
    中未定义,我们无法从这段代码中猜出,我是什么?所以没有人能告诉你为什么它是未定义的,你不能在PHP中这样定义一个函数。充其量,但我强烈反对这样做,您可以将函数引用存储在变量中并调用它……如果您开始这样编程,您已经准备好学习闭包;-)