>  기사  >  백엔드 개발  >  PHP 함수에서 지역 변수와 전역 변수의 차이점

PHP 함수에서 지역 변수와 전역 변수의 차이점

伊谢尔伦
伊谢尔伦원래의
2017-05-09 10:44:163606검색

프로그램 내에서 정의된 변수를 로컬 변수라고 하며, 프로그램 내에서만 사용되며 프로그램이 종료되면 사라집니다. 프로그램 외부에서 정의된 변수를 전역변수라고 부르는데, 이는 프로그램에서 호출할 수 있지만 프로그램이 종료되어도 사라지지 않습니다. 이전 장에서는 PHP 함수의 사용자 정의 함수의 로컬 변수사용자 정의 함수의 전역 변수를 각각 소개했습니다. 함수를 정의합니다. 이 함수의 변수는 이 함수 내에서만 사용할 수 있습니다. return은 이 함수를 호출하면 이 값이 함수 내에서 변수가 될 수 있습니다. 지역 변수입니다. 전역 변수는 함수 외부에서 정의된 변수이며 해당 범위는 정의 지점부터 파일 끝까지 확장됩니다.

PHP에서는 함수가 별도의 프로그램 조각으로 처리되므로 로컬 변수가 전역 변수를 덮어쓰게 됩니다. 로컬 변수에 동일한 변수가 정의되어 있고 전역 변수가 없더라도 덮어쓰게 됩니다.

다음은 차이점을 보여주는 예입니다.

<?php
//局部变量测试
$s1= "out s1"; //全局变量
function say(){
 $s1 = "in s1"; //局部变量
 echo "say():$s1";
}
say(); //输出局部变量: in s1
echo "<br/>";
echo "function out:$s1"; ////输出全局变量:out s1
//static变量测试
function count1(){
 $num = 0;
 $num++;
 echo $num." ";
}
function count2(){
 static $num = 0;
 $num++;
 echo $num." ";
}
for($i=0; $i<10; $i++){
 count1(); //11 1 1 1 1 1 1 1 1 1
}
echo "<br/>";
for($i=0; $i<10; $i++){
 count2(); //1 2 3 4 5 6 7 8 9 10
}
echo "<br/>";
//全局变量在函数中运用,加global
$a="php";
$b = "java";
function show(){
 echo $a; // 无输出
 global $b;
 echo $b; //定义global,输出java
}
show();
?>

로컬 변수와 글로벌 변수의 차이점 설명:

1. 지역 변수는 내부 변수에 접근할 수 있고 함수 내부의 결과를 출력할 수 있습니다. 함수 내부의 변수는 함수 외부에서 접근할 수 없으므로 변수 값을 함수 외부에서 호출해야 하는 경우 결과를 출력할 수 없습니다. 후속 처리를 위해 기본 프로그램 블록을 통해 함수로 다시 전달됩니다.

2. PHP에서는 함수가 별도의 프로그램 코드 조각으로 간주될 수 있으므로 지역 변수가 전역 변수의 가시성을 무시하므로 함수에서 전역 변수를 직접 호출할 수 없습니다. 함수에서 전역 변수를 사용하려면 키워드를 사용하여 대상 변수를 정의해야 하며, 이 전역 변수의 키워드는 "global"입니다. 키워드 "global"을 사용하면 전역 데이터를 로컬 범위로 가져올 수 있습니다. a function. , 이 변수가 전역 변수임을 함수 본문에 알려줍니다.

3. PHP 변수 범위의 또 다른 중요한 기능은 정적 변수입니다. 정적 변수는 로컬 함수 범위에만 존재하며 한 번만 초기화됩니다. 프로그램 실행이 이 범위를 벗어나면 해당 값은 사라지지 않으며 마지막 실행 결과가 사용됩니다. 위의 예에서는 정적 변수가 사용되었으며 정적 변수는 각각 사용되지 않았습니다. 친구는 신중하게 비교할 수 있습니다.

【관련 튜토리얼 추천】

1. "php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼 "

2. PHP 프로그래밍 입문부터 마스터링까지 전체 동영상 튜토리얼

3.

PHP 실용 동영상 튜토리얼

위 내용은 PHP 함수에서 지역 변수와 전역 변수의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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