【问题标题】:defining a class within the function在函数中定义一个类
【发布时间】:2013-11-25 14:46:58
【问题描述】:

我刚学php,脑子里冒出一个问题,我能不能像这样在函数中定义类:

public class test{
  public function newtest(){
    // defining a class here like this:
    public class funclass{
     .....
    }
  }
}

【问题讨论】:

  • 你试过了吗?你会知道它的作用
  • 为什么要这样做?该类可以动态创建,但不会仅限于该函数
  • 问题与代码不符。

标签: php


【解决方案1】:

你可以

删除那些publics 后运行你的代码,你会得到这个:

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

Read 1

Read 2

【讨论】:

    【解决方案2】:

    是的,你可以

    function a(){
        class A {
            }
        }
    
    var_dump(class_exists('A')); //bool(false)
    a();
    var_dump(class_exists('A')); //bool(true)
    

    但是,请记住,类是全局的。您不能仅将类绑定到函数范围。

    【讨论】:

    • 你不能这样做。像他们一样将函数a() 放在一个类中,然后再试一次。答案是明确的no。查看他们的代码。
    • @Hanky웃Panky 答案很明确:您不能仅将类绑定到函数范围。所以我接受这个答案。
    • 您可以接受这个没有问题的答案。但是这个答案不适用于您的代码。无论您试图在代码中做什么都是不可能的。在这个解决方案中,没有外部类是它起作用的原因。
    • @Hanky웃Panky 你当然是对的。但是问题的标题与代码不匹配。 resume:函数内部可以,方法内部不能。
    • 没错。误解只是基于这种差异。我根据他们的代码继续回答,您根据他们的标题回答。这两个答案都是正确的,然后取决于实际情况。 +1
    猜你喜欢
    • 2014-10-12
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多