Вы можете использовать глобальное ключевое слово:
$a = "Hello World";
$b = "Hello World";
function outputStrings(){
global $a, $b;
echo $a." - ".$b;
}
$b = "Goodbye World";
outputStrings(); // ouputs "Hello World - Goodbye World"
Однако лучше не использовать эту структуру. Это обычно сбивает с толку и сделает ваш код сложным в обслуживании. Wordpress часто использует этот подход в своей кодовой базе, что делает его очень сложным для отладки. Другие плагины и код могут вставлять и изменять глобальные переменные, изменяя вывод вашего скрипта.
Что было бы лучше, если бы:
Используйте структуру ООП для вашего веб-приложения.
Таким образом, вы можете использовать объекты вместо просто случайных глобальных переменных. Это позволяет избежать случайного перезаписи глобальной переменной в ходе сценария. Это также помогает правильно организовать переменные, поэтому все переменные, относящиеся к пользователям, могут быть в классе User
. Имеет больше смысла структурировать это так.
class User {
private $firstName;
private $secondName;
private $gender;
public function __construct($fname, $sname, $gend){
$this->firstName = $fname;
$this->secondName = $sname;
$this->gender = $gend;
}
public function outputDetails(){
echo $this->firstName." ".$this->secondName." is ".$this->gender;
}
}
$user = new User("Thomas", "Clayson", "Male");
$user->outputDetails();
Передача переменных в функции
Так же, как вы показали в своем примере. Это общепринятый стандартный способ сделать это. Вы должны всегда передавать переменные, подобные этой, это поможет вам определить области и правильную структуру. Кроме того, это означает, что вы знаете, каково значение переменных, поскольку вы владеете ими и передаете их функциям, а не просто извлекаете переменные из глобальной области видимости.