Intereting Posts
Laravel Mail :: send () отправка нескольких адресов или адресов Как создать файл xlsx без использования какой-либо библиотеки excel PHP разрывы строк и отступы в html-выходе Отменять уведомление вкладки страницы Более элегантный способ разбора встроенных переменных в строках Как поймать кривые ошибки в PHP Флажок внутри цикла php foreach для удаления всех проверок :: эквивалент класса в PHP 5.4 Ошибка установки сервера Apache (порт 80 или 443 уже используется) как OpenID различается между разными входами на той же конечной точке OpenID Невозможно вставить в базу данных MySQL с помощью PDO … Нет ошибок Laravel – Создание токенов API для внутреннего использования для каждого пользователя Можете ли вы порекомендовать хорошую разработку графических диаграмм на основе php Gantt? Как отображать значения данных круговой диаграммы для каждого фрагмента в chart.js как вызвать файл PHTML на странице CMS Magento

Изменение глобальной переменной внутри функции PHP

Я пытаюсь изменить переменную, которая находится вне функции, изнутри функции. Потому что, если дата проверки функции превышает определенную сумму, мне нужно изменить год для даты в начале кода.

$var = "01-01-10"; function checkdate(){ if("Condition"){ $var = "01-01-11"; } } 

A. Используйте глобальное ключевое слово для импорта из области приложения.

 $var = "01-01-10"; function checkdate(){ global $var; if("Condition"){ $var = "01-01-11"; } } checkdate(); 

B. Используйте массив $ GLOBALS .

 $var = "01-01-10"; function checkdate(){ if("Condition"){ $GLOBALS['var'] = "01-01-11"; } } checkdate(); 

C. Передайте переменную по ссылке .

 $var = "01-01-10"; function checkdate(&$funcVar){ if("Condition"){ $funcVar = "01-01-11"; } } checkdate($var); 

Просто используйте global ключевое слово так:

 $var = "01-01-10"; function checkdate(){ global $var; if("Condition"){ $var = "01-01-11"; } } 

Любая ссылка на эту переменную будет тогда глобальной.

Все ответы здесь хороши, но … вы уверены, что хотите это сделать?

Изменение глобальных переменных изнутри функций, как правило, является плохой идеей, поскольку она может очень легко вызвать код спагетти, где переменные изменяются по всей системе, функции взаимозависимы друг с другом и т. Д. Это настоящий беспорядок.

Позвольте мне предложить несколько альтернатив:

1) Объектно-ориентированное программирование

2) Функция возвращает значение, которое назначается вызывающим.

например $ var = checkdate();

3) Наличие значения, хранящегося в массиве, который передается в функцию по ссылке

function checkdate (& $ values) {if (condition) {$ values ​​["date"] = "01-01-11"; }}

Надеюсь это поможет.

Попробуйте этот пропуск по ссылке

  $var = "01-01-10"; function checkdate(&$funcVar){ if("Condition"){ $funcVar = "01-01-11"; } } checkdate($var); 

или Попробуйте сделать то же самое, что и выше, сохраняя эту функцию как таковой.

  $var = "01-01-10"; function checkdate($funcVar){ if("Condition"){ $funcVar = "01-01-11"; } } checkdate(&$var);