>백엔드 개발 >PHP 튜토리얼 >PHP 변수 범위 예제에 대한 자세한 설명

PHP 변수 범위 예제에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-04-27 17:12:332363검색

가변범위란 무엇인가요?

변수 사용 시 변수 정의 규칙을 준수해야 합니다. 변수는 유효한 범위 내에서 사용해야 하며, 변수가 제한된 범위를 초과하면 변수는 의미가 없습니다. 그러면 100위안은 사용할 수 없습니다. 100달러가 이 변수에 해당하고, 100달러 이내의 범위가 범위와 동일합니다.

다양한 범위로 인해 PHP 변수는 다음 표와 같이 로컬 변수, 전역 변수, 정적 변수로 구분됩니다.

作用域 说明
局部变量 在函数的内部定义的变量,作用域就是所在的函数范围
全局变量 在被定义所有的函数以外的变量,作用域是整个PHP文件,但是在用户自定义函数内部是不能使用的。如果希望用户在用户自定义函数内部使用全局变量,则使用global关键字声明全局变量
静态变量 能够在函数调用结束后仍保留变量值,当再次回到其作用域,又可以继续使用原来的值。而一般变量是在函数调用后,其存储的数据值会被清除,所占用的内存空间也会被释放。使用静态变量时,先要用关键字static来声明变量,把关键字static放在要定义的变量之前
범위

PHP 변수 범위 예제에 대한 자세한 설명 설명
로컬 변수 내부에 정의되어 있습니다. 함수 변수의 범위는 해당 변수가 위치한 함수 범위입니다.
전역 변수 정의된 모든 함수 외부의 변수는 전체 PHP 파일의 범위를 가지지만 사용자 정의 함수 내에서는 사용할 수 없습니다. 사용자가 사용자 정의 함수 내에서 전역 변수를 사용하도록 하려면

global 키워드를 사용하여 전역 변수를 선언하세요

정적 변수 함수 호출이 끝난 후에도 변수 값을 유지할 수 있습니다. 해당 범위로 다시 돌아가면 원래 값을 계속 사용할 수 있습니다. 일반 변수의 경우, 함수 호출 후 그 안에 저장된 데이터 값이 지워지고 점유된 메모리 공간이 해제됩니다. 정적 변수를 사용할 때는 먼저 static 키워드를 사용하여 변수를 선언하고, 정의할 변수 앞에 static 키워드를 넣어야 합니다

함수 내부에 정의된 변수의 범위는 해당 함수가 위치한 함수입니다. 함수 외부에 할당하면 완전히 다른 변수로 간주됩니다. 변수가 선언된 함수를 종료하면 변수와 해당 값이 지워집니다.

예제PHP 변수 범위 예제에 대한 자세한 설명함수 내부에 할당된 변수(로컬 변수)와 함수 외부에 할당된 변수(전역 변수)를 비교하는 예제입니다.

<?php
header("content-type:text/html;charset=utf-8");

$exam= "在函数外定义";                                     //声明全局变量

function add(){

    $exam="在函数内定义";                                //声明局部变量
    echo "在函数内输出的内容是:".$exam."<br/>";         //输出局部变量
}
add();                                                  //调用函数
echo "在函数外输出的内容是:".$exam;                    //输出全局变量


?>

실행 결과는 다음과 같습니다.

정적 변수는 여러 곳에서 사용될 수 있습니다. 예를 들어, 블로그에서 정적 변수를 사용하여 방문자 수를 기록하면 사용자가 방문하고 떠날 때마다 현재 방문자 수가 유지될 수 있습니다. 정적 변수는 채팅방에서 사용자 채팅 콘텐츠를 기록하는 데 사용될 수도 있습니다.

예제PHP 변수 범위 예제에 대한 자세한 설명

다음 예에서는 정적 변수와 일반 변수를 사용하여 동시에 데이터를 출력하여 둘의 기능 차이를 살펴보겠습니다. 코드는 다음과 같습니다.

<?php
function zdy0(){
    static $message = 0;           //初始化静态变量
    $message+=1;
    echo $message." ";
}
function zdy1(){
    $message = 0;           //初始化静态变量
    $message+=1;
    echo $message." ";
}
for ($i=0;$i<10;$i++)   zdy0();   //输出1~10
echo "<br>";
for ($i=0;$i<10;$i++)   zdy1(); //输出10个1
echo "<br>";
?>
코드 실행 결과:

예시:

커스텀 함수 zdy()는 1부터 10까지 출력합니다. 총 10개의 숫자가 있고 zdy1() 함수는 10 1을 출력합니다. 왜냐하면 사용자 정의 함수 zdy()에는 정적 변수 $message가 포함되어 있고 함수 zdy1()의 $message는 다음과 같기 때문입니다. 평범한 변수. 두 변수는 모두 0으로 초기화되고 두 함수는 각각 for 루프를 사용하여 호출됩니다. 결과적으로 함수 zdy()는 호출된 후 정적 변수 $message의 값을 유지합니다. 정적 변수의 초기화는 함수가 처음 호출될 때만 수행되며, 앞으로는 더 이상 초기화되지 않습니다. 함수 zdy1()이 호출된 후 해당 변수 $message는 원래 값을 잃고 0으로 다시 초기화됩니다.

전역 변수는 프로그램의 어느 곳에서나 액세스할 수 있지만 사용자 정의 함수 내부에서는 액세스할 수 없습니다. 사용된. 사용자 정의 함수 내에서 전역 변수를 사용하게 하려면 global 키워드를 사용하여 전역 변수를 선언합니다.

PHP 변수 범위 예제에 대한 자세한 설명다음은 전역 변수를 다음과 같이 적용합니다. 전역 변수가 있는 사용자 정의 함수는 비교에 사용하면 안 됩니다. 이 예에서는 두 개의 전역 변수 $zy 및 $zyy가 정의되어 있습니다. 사용자 정의 함수 lxt()에서 이를 5행과 7행에서 호출하려고 하지만 프로그램 출력 결과는 $zyy

"PHP 중국어 웹사이트"입니다. 왜냐하면 전역 변수 $zyy가 6행에서 전역 키워드로 선언되었기 때문입니다. 5번째 줄에는 출력이 없으며 $zy는 두 번째 줄의 $zy와 아무 관련이 없습니다. 예시 코드는 다음과 같습니다.

<?php
header("content-type:text/html;charset=utf-8");
$zy="你好";
$zyy="PHP中文网";
function lxt(){
    echo $zy."<br>";  //$zy 不能被调用,没有输出
    global $zyy;       //利用关键字global 在函数内部说明,不说明认为是私有变量
    echo $zyy."<br>";  //调用$zyy
}
lxt();
?>
코드 실행 결과:

전역 변수를 적용하는 것과 적용하지 않는 것의 차이점은 다음 섹션에서 "

변수 변수"에 대해 설명하겠습니다. "php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼》변수의 범위

위 내용은 PHP 변수 범위 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.