Суперглобальные переменные

yurash

Guest
nagash не получится, Константы - это идентификаторы простых склярных значений, их нельзя изменить
 

crocodile2u

http://vbolshov.org.ru
Не вполне понимаю такую настойчивость с "объявлением суперглобальных переменных". Можно ведь сделать класс SITE, а потом от него будут наследовать модули. В результате ВСЕ модули смогут обращаться к методам класса-родителя через $this->method(); Если нужно передавать какие-то переменные в экземпляры дочерних классов, так, чтобы не создавались множественные копии (ну например, есть в родительском классе var $DB - экземпляр DatabaseAbstractionLayer, можешь воспользоваться передачей переменных по ссылке, статическими методами (посмотри, как используются методы factory() в PEAR)).

PS. Прошу прощения за некоторый флуд - по сути все это уже было сказано; я просто постарался обобщить.
 

yurash

Guest
lucas
singleton как я понимаю это создание класса в единственном виде.
PHP:
<?php
class example {
  var $testStr = '';
  function example($foo, $bar) {
    $this->testStr = 'init';
  }

  function &singleton($foo, $bar) {
    static $instances;

    if (!isset($instances)) $instances = array();

    $parameters = func_get_args();
    $signature  = md5(implode(";", $parameters));

    if (!isset($instances[$signature])) $instances[$signature] = new example($foo, $bar);
    return $instances[$signature];
  }

  function getTest() {
    return $testStr;
  }

  function setTest($Value) {
     $testStr = $Value;
  }
}

$ex = &example::singleton('1', '2');
?>
вот пример кода ну а как дальше мне поступать чтобы не обявлять переменную в функции как global
типа
PHP:
function testGlobal() {
   echo $ex->getTest()
}
 
Сверху