Php 在函数中定义类

Php 在函数中定义类,php,Php,我正在学习php,脑海中出现了一个问题,我可以在函数中定义如下类: public class test{ public function newtest(){ // defining a class here like this: public class funclass{ ..... } } } 是的,你可以 function a(){ class A { } } var_dump(class_exists('A'

我正在学习php,脑海中出现了一个问题,我可以在函数中定义如下类:

public class test{
  public function newtest(){
    // defining a class here like this:
    public class funclass{
     .....
    }
  }
}
是的,你可以

function a(){
    class A {
        }
    }

var_dump(class_exists('A')); //bool(false)
a();
var_dump(class_exists('A')); //bool(true)
但是,请记住,类是全局的。您不能仅将类绑定到函数作用域。

是的,您可以

function a(){
    class A {
        }
    }

var_dump(class_exists('A')); //bool(false)
a();
var_dump(class_exists('A')); //bool(true)
但是,请记住,类是全局的。您不能仅将类绑定到函数作用域。

您可以而不能

删除那些
public
s后运行代码,您将得到以下结果:

致命错误:类声明不能嵌套在第6行

你可以而不是

删除那些
public
s后运行代码,您将得到以下结果:

致命错误:类声明不能嵌套在第6行


你试过了吗?你会知道它是干什么的你为什么要这么做?该类可以动态创建,但仅限于该函数问题与代码不匹配。您尝试过吗?你会知道它是干什么的你为什么要这么做?该类可以动态创建,但它的作用域仅限于该函数问题与代码不匹配。您不能这样做。将该函数
a()
像它们那样放入类中,然后重试。答案是明确的“否”。请看他们的代码。@Hanky웃答案很清楚:不能只将类绑定到函数作用域。所以我接受这个答案。你可以接受这个答案,这不是问题。但是这个答案不适用于您的代码。无论您试图在代码中做什么,都是不可能的。在这个解决方案中没有外部类,这就是它工作的原因。@Hanky웃潘奇,你当然是对的。但问题的标题与代码不匹配。简历:内部函数你可以,内部方法你不能。这是正确的。误解只是基于这种差异。我根据他们的代码继续回答,你根据他们的标题回答。这两个答案都是正确的,这取决于实际情况+你不能这样做。将该函数
a()
像它们那样放入类中,然后重试。答案是明确的“否”。请看他们的代码。@Hanky웃答案很清楚:不能只将类绑定到函数作用域。所以我接受这个答案。你可以接受这个答案,这不是问题。但是这个答案不适用于您的代码。无论您试图在代码中做什么,都是不可能的。在这个解决方案中没有外部类,这就是它工作的原因。@Hanky웃潘奇,你当然是对的。但问题的标题与代码不匹配。简历:内部函数你可以,内部方法你不能。这是正确的。误解只是基于这种差异。我根据他们的代码继续回答,你根据他们的标题回答。这两个答案都是正确的,这取决于实际情况+1.