首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在方法中传递对象到函数

如何在方法中传递对象到函数
EN

Stack Overflow用户
提问于 2015-10-26 11:19:03
回答 2查看 170关注 0票数 0

我正忙着做以下工作

代码语言:javascript
复制
class abc{

   public function abc(){

      someFunction(){
          now here I can not call bcg function like due to scope of function 
          function bcg(){
               $this->bcg();
         }

      }

   }

   public function bcg(){
     ...
   }
}

现在我的问题是如何将当前类的对象传递给类方法中的哪一个函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 11:26:18

您可以通过将当前对象作为参数传递到匿名函数/闭包中:

代码语言:javascript
复制
// In an object method
$yourFunc = function ($object){
   $object->bcg();
}
$yourFunc($this);

如果您的函数是在类之外定义的,则还可以将其用作解决方案:

代码语言:javascript
复制
function myFunction($object) {
    $object->bcg();
}

class Foo {
    public function bgc() {
        // ...
    }
    public function doSomething() {
        myFunction($this);
    }
}

请注意,您的bcg函数将从公共范围中访问,因此protectedprivate函数将无法工作。

票数 2
EN

Stack Overflow用户

发布于 2015-10-26 11:24:20

不能在类方法中创建函数。

这应该是可行的:

代码语言:javascript
复制
class abc {

    public function abc() {
        $this->bcg(); // You can all bcg() here now
    }
    public function bcg() {

    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33344463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档