PHP - 如何从第二个类中的函数内的一个类运行函数?

时间:2015-08-14 22:02:44

标签: php class scope

这可能吗?

class Foo {
  public function bar() {
   return true;
  }
}

class Foo2 {
  $fooey = new Foo;

  public function bar2() {
    if ( $fooey->bar ) {
        return 'bar is true';  
    }
  }
}

我意识到上面的内容不起作用,因为我需要在bar2的范围内获得$ fooey。我该怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您无法在函数外部的类中创建对象,因此请使用__construct,因为它将在创建对象时首先运行。

<?php

class Foo {
  public function bar() {
   return true;
  }
}

class Foo2 {
  private $fooey = null

public __construct() {
    $this->fooey = new Foo();
}

  public function bar2() {
    if ( $this->fooey->bar ) {
        return 'bar is true';  
    }
  }
}

?>

答案 1 :(得分:0)

您所拥有的是无效的PHP语法。我相信你正在寻找这样的东西:

class Foo {
  public function bar() {
   return true;
  }
}

class Foo2 {
    private $fooey;
    public function __construct() {
      $this->fooey = new Foo;
    }

  public function bar2() {
    if ( $this->fooey->bar() ) {
        return 'bar is true';  
    }
  }
}

$obj = new Foo2;
$obj->bar2(); // 'bar is true' will be printed
  1. 您需要在构造函数中初始化事物(或将其作为变量传递)。

  2. 您需要使用$this来引用自己的属性。