Можно ли глобализировать экземпляр, который был объявлен в классе? - PullRequest
1 голос
/ 28 марта 2012

Можно ли глобализировать экземпляр, который был объявлен в классе?

Например:

<?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 ]

2 голосов
/ 28 марта 2012

Не ожидаю, если это нигде не было создано. Возможно, вам больше повезет с синглтоном:

public static $ioGlobalClass = new GlobalClass()

тогда:

Application::$ioGlobalClass->helloWorld();
0 голосов
/ 10 мая 2012

Конечно, вы можете:

<?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();
...