前言

在 PHP 学习中,发现 PHP 的变量与其他语言的语法有相似之处,但是也有一些语法是其他语言没有的,就如今天要讲的变量作用域。
php中变量作用域也分全局和局部作用域。目前理解是函数外的变量都是全局作用域;函数内的变量都是局部作用域。
但是php中对于全局作用域的使用和其他语言使用是不同的:在函数中中使用全局变量需要使用 global 关键字。具体使用如下。

未使用 global 关键字

<?php
	/**
	 * 1. php中函数外的变量都是全局变量
	 * 2. php中函数中要想使用全局变量,需要使用关键词:global。
	 */
    
	$x = 20;
	function Age() {
		$y = 10;
		$y = $x + $y;
		
		echo 'x:'.$x.'<br>';
		echo 'y:'.$y.'<br>';
		echo 'x + y = '.$y.'<br>';
	}
	echo '函数外:'.$x.'<br>';
	Age();

打印结果

PHP基础之PHP变量作用域_php

使用 global 关键字

<?php
	/**
	 * 1. php 中函数外的变量都是全局变量
	 * 2. php 中函数中要想使用全局变量,需要使用关键词:global。
	 */
    
	$x = 20;
	function Age() {
		global $x;
		$y = 10;
		$y = $x + $y;
		
		echo 'x:'.$x.'<br>';
		echo 'y:'.$y.'<br>';
		echo 'x + y = '.$y.'<br>';
	}
	echo '函数外:'.$x.'<br>';
	Age();

打印结果

PHP基础之PHP变量作用域_php_02

总结

要想在函数中使用自己定义的全局变量需要使用关键字 global。

疑问: PHP 内置的全局变量也需要使用 global 后才能使用吗?目前答案: 不需要使用。等待验证