Как сделать переменную global по всему классу

Очень простой вопрос: можно ли создать переменную, которая извлекается извне класса, 'global' для всего класса, так что мне не нужно вызывать глобальную переменную $ в начале каждого метода?

Это то, что я сейчас делаю:

class test{ public function testing(){ global $globalVariable, // Do something } public function testing_two(){ global $globalVariable, // Do something } } 

Другими словами, могу ли я импортировать переменные в функцию построения и, следовательно, сделать их доступными для всего класса, не вызывая «глобальный» для каждого метода?

ОБНОВИТЬ

Не уверен, что я сделал это слишком ясно, чего бы я хотел достичь. См. Ниже:

 $globalVariable = 'hello'; class test{ public function testing(){ global $globalVariable, // Do something } public function testing_two(){ global $globalVariable, // Do something } } 

Чтобы выяснить, как это сделать:

Вы, скорее всего, захотите сделать что-то вроде этого include('database.php'); , В этот момент все, что вы включили в свой сценарий, является глобальным. Теперь, если у вас есть класс, подобный выше, вы добавляете конструктор:

 class testclass { private $db; public function __construct($db) { $this->db = $db; } public function yourmethod() { $this->db->prepare(); // And so on } } 

Предположим, что ваша глобальная переменная называется $ db в глобальной области. Теперь вы можете просто построить свой объект с помощью new testclass($db); , Когда вы теперь используете $this->db во всех своих методах, нет необходимости использовать глобальный оператор.

Просто используйте ссылку:

 class test{ private $myvar; //use __ or old syntax to your liking function test() { global $globalVariable; $myvar =& $globalVariable; } public function testing(){ //Use $this->myvar // Do something } public function testing_two(){ //USe $this->myvar // Do something } } 

Передайте эту переменную как свойство класса

 class test { private $globalVariable = ''; public function testing() { $this->globalVariable = 'set-som-value'; } public function testing_two() { $this->globalVariable = 'Do Extra Work'; } } 

и вы можете изменить видимость переменных словами private , public и protected , где private делает доступную переменную доступной только в этот класс, защищает, делает переменную доступной в классах, которая расширяет этот конкретный класс, а public делает доступную переменную доступной извне.

Глобальный вне класса

 global $globalVar; $globalVar = 'SomeVal'; class test { public function testing() { global $globalVar; } } 

Это может помочь. У меня есть var вне моего класса, который я использую для mysqli.

  <?php $DB_NAME = 'database'; $DB_HOST = 'host'; $DB_USER = 'user'; $DB_PASS = 'password'; $linkID = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $Test = new Test($linkID); class Test { public $linkID; function __construct($linkID){ $this->linkID = $linkID; } public function new_mysql($sql) { $result = $this->linkID->query($sql) or die($this->linkID->error.__LINE__); return $result; } public function do_query() { $sql = "SELECT `name` FROM `contacts`"; $result = $this->new_mysql($sql); while ($row = $result->fetch_assoc()) { print "Test $row[name]<br>"; } } } ?> 

Теперь данные базы данных передаются классу в качестве помощника. Надеюсь это поможет.