PHP에는 정적, 매개변수, 전역, 로컬의 네 가지 변수 범위가 있습니다.
1. 전역 변수
모든 함수 외부에서 정의된 변수는 전역 범위를 가지며 함수 내부에서 선언된 변수는 로컬 변수 내부에서만 액세스할 수 있습니다. 기능. 함수에서 전역 변수를 사용하려면 global 키워드를 사용하십시오.
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); ?>
전역 범위의 변수에 액세스하는 두 번째 방법은 특별한 PHP 사용자 정의 $GLOBALS 배열을 사용하는 것입니다. 이전 예는 다음과 같이 작성할 수 있습니다.
<?php $a = 1; $b = 2; function Sum() { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } Sum(); ?>
2. 정적 변수
변수 범위의 또 다른 중요한 기능은 정적 변수(정적 변수)입니다. 정적 변수는 로컬 함수 범위에만 존재하지만 프로그램 실행이 이 범위를 벗어나도 해당 값은 손실되지 않습니다.
함수에 정의된 정적 변수는 함수 외부에서 호출할 수 없습니다.
정적 변수는 재귀 함수를 처리하는 방법도 제공합니다. 재귀 함수는 자기 자신을 호출하는 함수입니다. 재귀 함수를 작성할 때는 무기한 재귀될 수 있으므로 주의하세요. 재귀를 종료하는 적절한 방법이 있는지 확인해야 합니다.
<?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test (); } $count--; } ?>
3. 지역 변수
매개변수는 호출 코드를 통해 함수에 값을 전달하는 지역 변수입니다.
때로는 변수 변수 이름을 사용하는 것이 매우 편리합니다. 즉, 변수의 변수명을 동적으로 설정하여 사용할 수 있다. 일반 변수는 선언으로 설정됩니다. 예:
<span style="color:#000000;"><span style="color:#0000BB;">9f658e506a1eb22b47c82c68cc37cf49</span></span> |
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了。例如:
<span style="color:#000000;"><span style="color:#0000BB;">0866218afc3127d68012a3c0b8648436</span></span> |
这时,两个变量都被定义了:$a 的内容是“hello”并且$hello 的内容是“world”。因此,可以表述为:
<span style="color:#000000;"><span style="color:#0000BB;">f5768488027307d1b3956c7da0cb8c3a</span></span> |
以下写法更准确并且会输出同样的结果:
<span style="color:#000000;"><span style="color:#0000BB;">a4b97cc2c1c24866c46df264f35790dd</span></span> =
|
"안녕하세요"
<span style="color:#000000;"><span style="color:#0000BB;">000f79d8fa7080b5016d95c63a33af7c🎜🎜</span></span>
🎜🎜🎜🎜🎜이때 두 변수가 모두 정의됩니다. 🎜 $a🎜의 콘텐츠는 "hello"이고 🎜$hello🎜의 콘텐츠는 "world"입니다. 따라서 다음과 같이 표현할 수 있습니다: 🎜🎜🎜🎜🎜<span style="color:#000000;"><span style="color:#0000BB;">2bd2122ff6db71c90bf5464ef0fc9ef3🎜🎜</span></span>
🎜🎜🎜🎜它们都会输出:hello world。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下$$a[1]时,解析器需要知道是想要$a[1]作为一个变量呢,还是想要$$a作为一个变量并取出该变量中索引为 [1]的值。解决此问题的语法是,对第一种情况用${$a[1]},对第二种情况用${$a}[1]。
注意可变变量不能用于 PHP 的超全局变量数组。这意味着不能这样用:${$_GET}。
5. 常量
<?php define("GREETING", "Welcome to W3School.com.cn!"); echo GREETING; ?>
常量前面没有美元符号($);
常量默认为大小写敏感。按照惯例常量标识符总是大写的。
常量只能用 define() 函数定义,而不能通过赋值语句;
和 superglobals 一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方定义和访问常量;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量数据(boolean,integer,float 和 string)或 null。
1. 自定义常量
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>
2. 类常量
可以在类中定义常量,常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。但在PHP5.6中,对常量进行了增强,允许常量计算,允许使用包 含数字、字符串字面值和常量的表达式结果来定义const常量。常量的值也可以为一个数组,但不能是变量。
定义类常量只能使用const关键字。
class MyClass { const AB = 2; public function showConstant(){ echo self::AB; } }
const 与 define 的区别?
1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。
2、Const可在类中使用,define不能
3、Const不能再条件语句中定义常量
4、const采用普通的常量名称,define可以采用表达式作为名称
相关推荐:
위 내용은 PHP의 변수 및 상수 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!