В PHP, как вы используете внешний $ var для использования внутри функции в классе? Например, скажем, $ some_external_var устанавливает значение true, и у вас есть что-то вроде
class myclass { бла .... бла .... функция myfunction () { if (isset ($ some_external_var)) что-то делать ... } } $ some_external_var = true; $ obj = new myclass (); $ Obj-> MyFunction ();
благодаря
Global $some_external_var;
функция myfunction () { Глобальный $ some_external_var; if (! empty ($ some_external_var)) что-то делать ... } }
Но поскольку Global автоматически устанавливает его, проверьте, не является ли он пустым.
Вам нужно будет использовать global
ключевое слово внутри вашей функции, чтобы ваша внешняя переменная была видимой для этой функции.
Например :
$my_var_2 = 'glop'; function test_2() { global $my_var_2; var_dump($my_var_2); // string 'glop' (length=4) } test_2();
Вы также можете использовать массив $GLOBALS
, который всегда отображается, даже внутри функций.
Но, как правило, не рекомендуется использовать глобальные переменные: ваши классы не должны зависеть от какого-то внешнего материала, который может быть или не быть там!
Лучший способ – передать переменные, которые вам нужны в качестве параметров, либо самим методам, либо конструктору класса …
это плохой дизайн программного обеспечения. Для того, чтобы класс функционировал, он должен быть снабжен данными. Итак, передайте этот внешний var в свой класс, иначе вы создадите ненужные зависимости.
Почему бы вам просто не передать эту переменную во время __construct () и сделать то, что объект делает во время строительства, в зависимости от значения истины этой переменной?
Используйте Setters и Getters или, возможно, централизованную конфигурацию, например:
function config() { static $data; if(!isset($data)) { $data = new stdClass(); } return $data; } class myClass { public function myFunction() { echo "config()->myConfigVar: " . config()->myConfigVar; } }
и использовать его:
config()->myConfigVar = "Hello world"; $myClass = new myClass(); $myClass->myFunction();
http://www.evanbot.com/article/universally-accessible-data-php/24