변수는 데이터를 저장하는 데 사용되는 컨테이너입니다. 대수학과 마찬가지로 변수에는 특정 값(예: $x=3) 또는 기타 변수(예: $x=$y+$z)가 할당될 수 있습니다. 변수 정의는 주로 다음과 같은 규칙을 따릅니다.
- 변수는 $로 시작하고 그 뒤에 변수 이름이 옵니다.
- 변수 이름은 숫자, 문자, 밑줄로 구성되며, 문자는 숫자일 수 없습니다.
-
변수 이름에는 공백이 포함될 수 없습니다.
- 변수 이름은 대소문자를 구분합니다.
php의 변수는 처음 값을 할당할 때 생성됩니다. 변수에 값이 할당되지 않으면 출력 시 다음과 같이 오류가 발생합니다. 아래:
1 2 3 4 | <span style= "color: #000000" >php
</span><span style= "color: #800080" > $x </span><span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> <span style= "color: #800080" > $x </span><span style= "color: #000000" >;
</span>?>
|
로그인 후 복사
이때 브라우저에 다음과 같은 오류 메시지가 표시됩니다.
-php%20%EB%B3%80%EC%88%985.cnblogs.com/blog/823295/20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608/823295-20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%9852350PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%986890-PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98383468846.png)
이 부분이 Python과 다릅니다. Python에서 변수에 값을 할당하지 않으면 컴파일러에서 직접 오류 메시지를 표시하므로 주의가 필요합니다.
사진, 파이썬 변수에 값이 할당되지 않은 오류가 발생했습니다
PHP는 약한 유형의 언어입니다. 변수를 정의할 때 변수의 유형을 정의할 필요가 없습니다. PHP는 변수의 값에 따라 자동으로 변수를 올바른 데이터 유형으로 변환합니다. 다음 예에 표시된 대로:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span style= "color: #000000" >php
</span><span style= "color: #800080" > $x </span>=3<span style= "color: #000000" >;
</span><span style= "color: #800080" > $y </span>=3.0<span style= "color: #000000" >;
</span><span style= "color: #800080" > $str </span>= "hello" <span style= "color: #000000" >;
</span><span style= "color: #800080" > $bool </span>=<span style= "color: #0000ff" >false</span><span style= "color: #000000" >;
</span><span style= "color: #800080" > $arr </span>=<span style= "color: #0000ff" > array </span>(PHP 학습 로그(2)-php 변수,2,3<span style= "color: #000000" >);
</span><span style= "color: #800080" > $_null </span>=<span style= "color: #0000ff" >NULL</span><span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> <span style= "color: #008080" > gettype </span>(<span style= "color: #800080" > $x </span>), "<br>" ; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> <span style= "color: #008080" > gettype </span>(<span style= "color: #800080" > $y </span>), "<br>" ; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> <span style= "color: #008080" > gettype </span>(<span style= "color: #800080" > $str </span>), "<br>" ; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> <span style= "color: #008080" > gettype </span>(<span style= "color: #800080" > $bool </span>), "<br>" ; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> <span style= "color: #008080" > gettype </span>(<span style= "color: #800080" > $arr </span>), "<br>" ; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> <span style= "color: #008080" > gettype </span>(<span style= "color: #800080" > $_null </span>), "<br>" ; <span style= "color: #008000" >
?>
|
로그인 후 복사
결과는 다음과 같습니다.
-php%20%EB%B3%80%EC%88%985.cnblogs.com/blog/823295/20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608/823295-20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%985235020062-PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98833990395.png)
다음으로 PHP의 4가지 변수 범위에 대해 설명합니다. 변수 범위는 주로 다음과 같은 4가지 변수 범위를 갖습니다.
- 현지
- 글로벌
- 정적
- 매개변수(parameter)
(PHP 학습 로그(2)-php 변수) 로컬 및 글로벌 범위
함수 외부에서 정의된 변수에는 전역 범위가 있습니다. 함수를 제외하고 전역 범위는 스크립트의 모든 부분에서 액세스할 수 있습니다. 함수의 변수 앞에
글로벌 키워드.
예:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span style= "color: #000000" >php
</span><span style= "color: #008000" > </span>
<span style= "color: #800080" > $a </span>=5<span style= "color: #000000" >;
</span><span style= "color: #0000ff" > function </span><span style= "color: #000000" > test()
{
</span><span style= "color: #800080" > $b </span>=PHP 학습 로그(2)-php 변수0<span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> "测试函数内变量<br>" <span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> "变量a的值为:<span style=" color: #800080 ">$a</span> <br>" ; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> "变量b的值为:<span style=" color: #800080 ">$b</span><br>" <span style= "color: #000000" >;
}
test();
</span><span style= "color: #0000ff" > echo </span> "测试函数外变量<br>" <span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> "变量a的值为:<span style=" color: #800080 ">$a</span> <br>" <span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> "变量b的值为:<span style=" color: #800080 ">$b</span><br>" ; <span style= "color: #008000" >
?>
|
로그인 후 복사
结果如下:
-php%20%EB%B3%80%EC%88%985.cnblogs.com/blog/823295/20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608/823295-20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98620PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%989PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98942PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98-502948520.png)
图、局部变量与全局变量
可见,在局部函数里面,是不能直接访问全局变量的,如果要访问全局变量,须在函数里面的变量前加上global关键字。同样,在函数外也不能直接访问函数里面的变量,函数执行结束内存会自动回收,故我们无法访问到。
(2)global关键字
global 关键字用于函数内访问全局变量,在函数内调用函数外定义的全局变量,需要用global关键字。值得一提的是,这和参数的调用不同,参数的调用并不会改变该变量在内存中的值,而global调用是直接调用内存中的该值,直接对它进行操作,故会改变其值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span style= "color: #000000" >php
</span><span style= "color: #008000" > </span>
<span style= "color: #008000" > </span>
<span style= "color: #800080" > $x </span>=5<span style= "color: #000000" >;
</span><span style= "color: #800080" > $y </span>=6<span style= "color: #000000" >;
</span><span style= "color: #008000" >
</span>
<span style= "color: #0000ff" > function </span><span style= "color: #000000" > myTest()
{
</span><span style= "color: #0000ff" > global </span> <span style= "color: #800080" > $x </span>,<span style= "color: #800080" > $y </span><span style= "color: #000000" >;
</span><span style= "color: #800080" > $y </span>=<span style= "color: #800080" > $x </span>+<span style= "color: #800080" > $y </span><span style= "color: #000000" >;
}
myTest();
</span><span style= "color: #0000ff" > echo </span> "y=<span style=" color: #800080 ">$y</span>" <span style= "color: #008000" >
?>
|
로그인 후 복사
*注意:超级全局变量 $GLOBALS[index]
php将所有全局变量存储在一个名为:$GLOBALS[index]的数组中,这个数组可以在函数内访问,也可以用来直接更新全局变量(只能在函数内进行)。
实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <span style= "color: #000000" >php
</span><span style= "color: #008000" > </span>
<span style= "color: #800080" > $x </span>=5<span style= "color: #000000" >;
</span><span style= "color: #800080" > $y </span>=6<span style= "color: #000000" >;
</span><span style= "color: #0000ff" > function </span><span style= "color: #000000" > myTest_PHP 학습 로그(2)-php 변수()
{
</span><span style= "color: #800080" > $GLOBALS </span>[ 'y' ]=<span style= "color: #800080" > $GLOBALS </span>[ 'x' ]+<span style= "color: #800080" > $GLOBALS </span>[ 'y' <span style= "color: #000000" >];
</span><span style= "color: #008000" >
</span><span style= "color: #000000" >
}
</span><span style= "color: #0000ff" > function </span><span style= "color: #000000" > myTest_2()
{
</span><span style= "color: #800080" > $GLOBALS </span>[ 'x' ]=PHP 학습 로그(2)-php 변수5<span style= "color: #000000" >;
}
</span><span style= "color: #0000ff" > echo </span> "执行myTest_PHP 학습 로그(2)-php 변수:<br>" <span style= "color: #000000" >;
myTest_PHP 학습 로그(2)-php 변수();
</span><span style= "color: #0000ff" > echo </span> "y=<span style=" color: #800080 ">$y</span>" , "<br>" <span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> "x=<span style=" color: #800080 ">$x</span>" , "<br>" <span style= "color: #000000" >;
</span><span style= "color: #800080" > $GLOBALS </span>[ '$x' ]=PHP 학습 로그(2)-php 변수2; <span style= "color: #008000" >
<span style= "color: #0000ff" > echo </span> "x=<span style=" color: #800080 ">$x</span>" , "<br>" <span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> "执行myTest_2:<br>" <span style= "color: #000000" >;
myTest_2();
</span><span style= "color: #0000ff" > echo </span> "x=<span style=" color: #800080 ">$x</span>" , "<br>" <span style= "color: #000000" >;
</span>?>
|
로그인 후 복사
结果为:
![GLOBALS[index] introduce GLOBALS[index] introduce](http://images20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%985.cnblogs.com/blog/823295/20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608/823295-20PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98608PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98620PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98920265-2PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98678300PHP%20%ED%95%99%EC%8A%B5%20%EB%A1%9C%EA%B7%B8(2)-php%20%EB%B3%80%EC%88%98.png)
图、GLOBALS[index]的用法示例
(3)static关键字
在一个函数执行完成之后,它的变量通常都会删除,有时我们希望函数中的某个变量保留,这时我们可以在申明变量时使用static关键字:
实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span style= "color: #000000" >php
</span><span style= "color: #008000" > </span>
<span style= "color: #0000ff" > function </span><span style= "color: #000000" > myTest()
{
</span><span style= "color: #0000ff" > static </span> <span style= "color: #800080" > $x </span>=0,<span style= "color: #800080" > $y </span>=PHP 학습 로그(2)-php 변수<span style= "color: #000000" >;
</span><span style= "color: #0000ff" > echo </span> <span style= "color: #800080" > $x </span><span style= "color: #000000" >;
</span><span style= "color: #800080" > $x </span>++<span style= "color: #000000" >;
}
myTest(); </span><span style= "color: #008000" >
myTest(); <span style= "color: #008000" >
myTest(); <span style= "color: #008000" >
<span style= "color: #008000" > </span>
<span style= "color: #0000ff" > echo </span> <span style= "color: #800080" > $y </span>; <span style= "color: #008000" >
?>
|
로그인 후 복사
(4)参数作用域
参数(parameter)的作用是将值传递给函数的局部变量。
实例:
1 2 3 4 5 6 7 8 9 10 | <span style= "color: #000000" >php
</span><span style= "color: #008000" > </span>
<span style= "color: #0000ff" > function </span> myTest(<span style= "color: #800080" > $x </span><span style= "color: #000000" >)
{
</span><span style= "color: #0000ff" > echo </span> "传递的值为:<span style=" color: #800080 ">$x</span>.<br>" <span style= "color: #000000" >;
}
myTest(</span>5); <span style= "color: #008000" >
myTest( "string" ) <span style= "color: #008000" >
?>
|
로그인 후 복사
==php新手,有不对的地方希望各位博友提醒,万分感谢==
Technorati 标签: php,变量,local,global,static,参数传递,GLOBALS[index]