是否可以全局化已在类中声明的实例?

时间:2012-03-28 15:34:20

标签: php class architecture global

是否可以全局化已在类中声明的实例?

例如:

<?php
   class Application
   {
      public $ioClass       = new Class();
      public $ioGlobalClass = new GlobalClass();

      public function __construct()
      {
          // constructor
      }
   }

   class Class 
   {
      public function __construct()
      {
          // constructor
      }

      public function doSomething()
      {
          // is this possible?
          global $ioGlobalClass;

          echo $ioGlobalClass->helloWorld();
      }
    }
 ?>

我可以在上面这个例子中做 global $ ioGlobalClass; 吗?

2 个答案:

答案 0 :(得分:2)

如果没有在任何地方实例化,我希望不会。单身人士可能会有更多的运气:

public static $ioGlobalClass = new GlobalClass()

然后:

Application::$ioGlobalClass->helloWorld();

答案 1 :(得分:-1)

当然可以:

<?php
require_once('global_class.php');

class Application
{
  public $ioGlobalClass;

  public function __construct()
  {
      global $ioGlobalClass;
      $this->ioGlobalClass = $ioGlobalClass;          
  }
  ...

global_class.php中你只需写:

<?php
global $ioGlobalClass;
$ioGlobalClass = new GlobalClass();