Как изменить глобальную переменную в условии PHP
Если не использовать условия, а менять переменную в функции, то всё работает и она меняется на 1, а условиями так и остаётся 0. Извините, если вопрос очень простой, я просто совсем чайник еще в php)
$password_err = 0;
function register(&$err) {
if ($_POST['password'] == $_POST['password_confirmation']) {
$login = $_POST['login'];
$password = $_POST['password'];
setcookie('login', $login);
setcookie('login', $password);
header('Location: ' . '/index.php');
}
else {
$err++;
}
}
function verify($password_err) {
if (1!=1) {
echo 'ываываывп';
}
else {
register($password_err);
}
};
if($_POST) {
verify($password_err);
}
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Функция verify принимает аргумент по значению, а не по ссылке:
function verify($password_err) {}
// ^^
Поэтому в функции register вы изменяете значение локальной переменной $password_err функции verify:
function verify($password_err) {
if (1!=1) {
echo 'ываываывп';
}
else {
// $password_err == 0
register($password_err);
// $password_err == 1
}
};
Чтобы изменить глобальную переменную, объявите verify аналогично register:
function verify(&$password_err) {}
// ^^^