PHP присвоить значение переменной (globa) из класса - PullRequest
0 голосов
/ 17 июня 2020

У меня есть небольшой фрагмент PHP. Как я могу присвоить новое значение своему глобалу из основного класса? Пример:

$GlobalValue = 0;

class SampleModuleController extends SampleController { 

public function doSomething() {
    $NewValue = 1;
    $GlobalValue = $NewValue
    }
}

echo $GlobalValue;
//This always echo's 0, When I try to output or print outside the class or use somewhere above in the php code. 
//I need to be able to assign the new value from within my class 
//and the function doSomething so it should be 1

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Если я правильно понял, то, что вы пытаетесь сделать, может быть довольно легко достигнуто с помощью этого:

global $GlobalValue;
$GlobalValue = 0;

class SampleModuleController {

    public function doSomething() {
        global $GlobalValue;
        $NewValue = 1;
        $GlobalValue = $NewValue;
    }

}

$ModuleController = new SampleModuleController();
$ModuleController->doSomething();

echo $GlobalValue; //print 1

Их ключ находится в ключевом слове «global» (что аналогично доступу к $ GLOBAL ["your_var_name"] контейнер.

Помимо этого, как говорили другие, не следует полагаться на глобальные переменные.

0 голосов
/ 17 июня 2020

Вы можете передать параметр в качестве ссылки в метод doSomething(), а затем вызвать эту функцию, передав вашу переменную $GlobalValue. Однако не рекомендуется иметь глобальные переменные. Вам следует подумать об изменении своего кода на более OOP.

$GlobalValue = 0;

class SampleModuleController {

    private $newValue = 3;

    public function doSomething(&$variable) {
        $variable = $this->newValue;
    }

}

$ModuleController = new SampleModuleController();
$ModuleController->doSomething($GlobalValue);

echo $GlobalValue; //print 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...