像这个类一样使用index.php中的函数->;publicF->;f()


use function from index.php like this class->publicF->f()

伙计们假设我们有这个类:我只想用一个特定的函数来做一些事情,把它看作一个按钮,但在某种程度上,你有一个公共函数,你可以执行它的一部分!

CLASS DATA {
      public function X() {
           function A() { 
              //do_something
           }
      }
}

现在我在index.php中,我只想调用函数A()。我试过$data->X()->A(),但什么都没有我试过$data->X(A())也没有

这可能吗?

按照您编写它的方式,没有。在我看来,您正试图以Javascript应用程序的方式构建一些东西。但正如Rizier123指出的那样,你可以做这样的事情。

class Foo {
    public function getBar(){
        return new Bar();
    }
}
class Bar {
    public function someFunction() {
    }
}

$foo = new Foo();
$foo->getBar()->someFunction();

虽然我不完全确定你为什么要这样嵌套,但继承是一条更好的途径。类似这样的东西:

class Foo extends Bar {
}
class Bar {
    public function someFunction() {
    }
}

$foo = new Foo();
$foo->someFunction();

但我想您可以使用前者作为在一致庄园中传递特定构造函数参数的一种方式。

class Foo {
    public function getRainbow(){
        return new Bar('rainbow');
    }
}
class Bar {
    private $type;
    public function __construct($type)
    {
        $this->type = $type;
    }
    public function someFunction() {
        switch($this->type){
            case 'rainbow':
                echo 'All the way across the sky.';
                break;
            default:
                echo 'Boring.';
                break;
        }
    }
}

$foo = new Foo();
$foo->getRainbow()->someFunction();