> php教程 > php手册 > PHP 학습 로그(2)-php 변수

PHP 학습 로그(2)-php 변수

WBOY
풀어 주다: 2016-08-18 08:57:57
원래의
1396명이 탐색했습니다.

변수는 데이터를 저장하는 데 사용되는 컨테이너입니다. 대수학과 마찬가지로 변수에는 특정 값(예: $x=3) 또는 기타 변수(예: $x=$y+$z)가 할당될 수 있습니다. 변수 정의는 주로 다음과 같은 규칙을 따릅니다.

  • 변수는 $로 시작하고 그 뒤에 변수 이름이 옵니다.
  • 변수 이름은 숫자, 문자, 밑줄로 구성되며, 문자는 숫자일 수 없습니다.
  • 변수 이름에는 공백이 포함될 수 없습니다.
  • 변수 이름은 대소문자를 구분합니다.

php의 변수는 처음 값을 할당할 때 생성됩니다. 변수에 값이 할당되지 않으면 출력 시 다음과 같이 오류가 발생합니다. 아래:

<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 학습 로그(2)-php 변수

이 부분이 Python과 다릅니다. Python에서 변수에 값을 할당하지 않으면 컴파일러에서 직접 오류 메시지를 표시하므로 주의가 필요합니다.

PHP 학습 로그(2)-php 변수사진, 파이썬 변수에 값이 할당되지 않은 오류가 발생했습니다     

PHP는 약한 유형의 언어입니다. 변수를 정의할 때 변수의 유형을 정의할 필요가 없습니다. PHP는 변수의 값에 따라 자동으로 변수를 올바른 데이터 유형으로 변환합니다. 다음 예에 표시된 대로:

<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><span style="color: #008000">输出类型为integ</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$y</span>),"<br>";     <span style="color: #008000">//</span><span style="color: #008000">输出类型为double</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$str</span>),"<br>";   <span style="color: #008000">//</span><span style="color: #008000">输出类型为string</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$bool</span>),"<br>";  <span style="color: #008000">//</span><span style="color: #008000">输出类型为boolean</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$arr</span>),"<br>";   <span style="color: #008000">//</span><span style="color: #008000">输出类型为array</span>
<span style="color: #0000ff">echo</span> <span style="color: #008080">gettype</span>(<span style="color: #800080">$_null</span>),"<br>";  <span style="color: #008000">//</span><span style="color: #008000">输出类型为NULL</span>
?>
로그인 후 복사

결과는 다음과 같습니다.

PHP 학습 로그(2)-php 변수

다음으로 PHP의 4가지 변수 범위에 대해 설명합니다. 변수 범위는 주로 다음과 같은 4가지 변수 범위를 갖습니다.

  • 현지
  • 글로벌
  • 정적
  • 매개변수(parameter)

(PHP 학습 로그(2)-php 변수) 로컬 및 글로벌 범위

함수 외부에서 정의된 변수에는 전역 범위가 있습니다. 함수를 제외하고 전역 범위는 스크립트의 모든 부분에서 액세스할 수 있습니다. 함수의 변수 앞에

글로벌 키워드.

예:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">局部作用域与全局作用域</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><span style="color: #008000">变量$a未在函数内定义,在引用时出现错误.</span>
    <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">//</span><span style="color: #008000">变量$a未在函数内定义,在引用时出现警告.</span>
?>
로그인 후 복사

结果如下:

PHP 학습 로그(2)-php 변수

图、局部变量与全局变量

可见,在局部函数里面,是不能直接访问全局变量的,如果要访问全局变量,须在函数里面的变量前加上global关键字。同样,在函数外也不能直接访问函数里面的变量,函数执行结束内存会自动回收,故我们无法访问到。

(2)global关键字

      global 关键字用于函数内访问全局变量,在函数内调用函数外定义的全局变量,需要用global关键字。值得一提的是,这和参数的调用不同,参数的调用并不会改变该变量在内存中的值,而global调用是直接调用内存中的该值,直接对它进行操作,故会改变其值。

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">在函数内调用函数外的变量,需要用到global关键字</span><span style="color: #008000">*/</span>
<span style="color: #008000">/*重要:</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: #008000">
 * 以下这种方式是不被允许的,只有在函数内调用函数外的变量才能使用global
golbal $z=7;
</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">//</span><span style="color: #008000">输出y=PHP 학습 로그(2)-php 변수PHP 학습 로그(2)-php 변수</span>
?>
로그인 후 복사

 

*注意:超级全局变量 $GLOBALS[index]

      php将所有全局变量存储在一个名为:$GLOBALS[index]的数组中,这个数组可以在函数内访问,也可以用来直接更新全局变量(只能在函数内进行)。

实例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000"> GLOBALS[index]的用法讲解 </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: #008000">index不用写$字符,否则报错:$x,$y undefined
    $GLOBALS['$y']=$GLOBALS['$x']+$GLOBALS['$y'];
    </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><span style="color: #008000">未将GLOBALS[index]放在函数里面,无效</span>
<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]的用法示例

(3)static关键字

      在一个函数执行完成之后,它的变量通常都会删除,有时我们希望函数中的某个变量保留,这时我们可以在申明变量时使用static关键字:

实例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">静态变量static的用法</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">//</span><span style="color: #008000">输出为:0</span>
myTest(); <span style="color: #008000">//</span><span style="color: #008000">输出为:PHP 학습 로그(2)-php 변수</span>
myTest(); <span style="color: #008000">//</span><span style="color: #008000">输出为:2</span>

<span style="color: #008000">/*</span><span style="color: #008000">函数里面的静态变量不能直接被访问</span><span style="color: #008000">*/</span>
<span style="color: #0000ff">echo</span> <span style="color: #800080">$y</span>;  <span style="color: #008000">//</span><span style="color: #008000">输出为:Notice: Undefined variable: y</span>
?>
로그인 후 복사

(4)参数作用域

      参数(parameter)的作用是将值传递给函数的局部变量。

实例:

<span style="color: #000000">php
</span><span style="color: #008000">/*</span><span style="color: #008000">参数(parameter)传递</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">//</span><span style="color: #008000">结果为:传递的值为5.</span>
myTest("string") <span style="color: #008000">//</span><span style="color: #008000">结果为:传递的值为string.</span>
?>
로그인 후 복사

 

 

==php新手,有不对的地方希望各位博友提醒,万分感谢==

Technorati 标签: php,变量,local,global,static,参数传递,GLOBALS[index]
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿