В чем разница между объявлением переменной внутри функции global
или public/private
VS, передающей ее функции в качестве аргумента?
Другая связанная путаница
Недавно я вызвал у меня большую головную боль, пытающуюся передать переменную aa array в функцию global
и отредактировать ее внутри и надеяться вернуть ее, и мне потребовалось несколько часов, чтобы понять, что мне нужно передать ее в функцию как аргумент по ссылке, например functionCall(&$arrayVar);
Вторичный вопрос: Но мне все еще интересно, почему он не работает, чтобы передать переменную в global
а затем отредактировать ее и выплевывать обратно с return
или просто сделать что-то вроде конкатенации в массив переменных?
Еще один пример, с которым я столкнулся, заключается в создании функции для PHPMailer, где я передаю несколько аргументов, таких как адрес электронной почты и тело сообщения, но мне также необходимо передать строки аутентификации, такие как ключ API и т. Д. Здесь каждый время я называю это:
Поэтому я решил, что лучший способ:
function phpMailer( $mail_to = "to@email.com", $mail_from = "a@b.com" ) { global $authCredentials; } // And of course, when I call phpMailer, I call it like phpMailer("that.guy@there.com", "me@here.com");
Третичный вопрос: Является ли это подходящим использованием global
или есть какой-то другой способ, которым я должен это делать?