>  기사  >  백엔드 개발  >  PHP 전역 변수를 사용하는 방법

PHP 전역 변수를 사용하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-10-10 17:15:281995검색

PHP 전역 변수 사용 방법: 함수 내에서 전역을 통해 변수를 선언할 수 있으며, 코드는 [$name = "why";functionchangeName(){global $name;$name = "what";}]입니다.

PHP 전역 변수를 사용하는 방법

PHP 전역 변수 사용 방법:

1 전역 변수의 정의 및 사용

처음에는 다음과 같았습니다.

<?php
$name = "why";
function changeName(){
    $name = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

코드 실행 결과는 다음과 같습니다. name은changeName()을 실행한 후 표시되는 것이 아니라 이유입니다. 이유를 분석해 보면, 함수 본문의changeName에 있는 $name 변수가 기본적으로 로컬 변수로 설정되어 있고, $name의 범위가changeName 내에 있기 때문입니다. 따라서 다음과 같이 코드를 수정하고 전역 변수를 추가하세요.

<?php
global $name;
$name = "why";
function changeName(){
    $name = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

참고: 변수를 전역으로 선언하는 동안 변수에 값을 할당할 수 없습니다. 전역 $name = "why"의 사용법이 잘못되었습니다.

 전역 변수를 정의한 후에도 실행 결과가 여전히 내 이름이어서 놀랐습니다. 글로벌의 올바른 사용법은 "외부 변수를 함수에 도입합니다. 변수가 매개변수를 통해 전달되지 않으면 글로벌을 통해 도입됩니다."라는 것이 밝혀졌습니다. 변수인 경우, 변수를 함수 내에서 사용할 수 있도록 함수 내에서 전역을 통해 변수를 선언할 수 있습니다(매개변수로 전달하는 것과 동일). 그런 다음 코드를 다시 수정합니다.

<?php
$name = "why";
function changeName(){
    global $name;
    $name = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

이 작업의 결과는 다음과 같습니다. my name is what은 변수의 범위를 전역으로 만드는 대신 전역이 매개 변수를 전달하는 데 사용됨을 나타냅니다. 다음 예를 다시 살펴보세요.

<?php
$name = "why";
function changeName(){
    global $name;
    $name = "what";
}
function changeName2(){
    $name = "where";
}
changeName();
changeName2();
echo "my name is " . $name . "<br/>";
?>

 실행 결과는 다음과 같습니다. my name is what. 전역 $name을changeName2()에 추가하면 실행 결과는 다음과 같습니다. my name is where.

 결론적으로 전역의 역할은 함수 외부에서 선언된 변수를 사용하려는 경우 전역을 사용하여 변수를 선언하는 것과 동일하며 변수는 다음과 같습니다. 참조됨.

전역 매개변수 정의를 사용하는 것 외에도 슈퍼 전역 변수 $GLOBAL을 사용할 수도 있습니다:

<?php
$name = "why";
function changeName(){
    $GLOBALS[&#39;name&#39;] = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

2, global 및 $GLOBAL

예:

<?php
$var1 = 1;
$var2 = 2;
function test1(){
    $GLOBALS[&#39;var2&#39;] = &$GLOBALS[&#39;var1&#39;];
}
test1();
echo $var2 . "<br />";
$var3 = 1;
$var4 = 2;
function test2(){
    global $var3,$var4;
    $var4 = &$var3;
}
test2();
echo $var4 . "<br />";
?>

$var2의 출력 값은 1입니다. $var4의 값은 2입니다. $var3의 참조는 $var4의 참조 주소를 가리키기 때문입니다. $var4의 실제 값은 변경되지 않았습니다. 공식적인 설명은 다음과 같습니다. $GLOBALS['var']는 외부 전역 변수 자체이고, 전역 $var는 외부 $var와 동일한 이름의 참조 또는 포인터입니다. 이는 $GLOBAL을 스크립트의 모든 범위에서 사용할 수 있으며 전역 $variable;을 실행하지 않고도 함수나 메소드에서 $GLOBAL에 액세스할 수 있음을 의미합니다. 다른 모든 슈퍼전역 변수와 달리 $GLOBALS는 항상 PHP에서 사용할 수 있습니다. 또 다른 예:

<?php
$var1 = 1;
function test1(){
    unset($GLOBALS[&#39;var1&#39;]);
}
test1();
echo $var1 . "<br />";
$var2 = 1;
function test2(){
    global $var2;
    unset($var2);
}
test2();
echo $var2;
?>

 출력 결과는 $var1이 존재하지 않고 $var2의 값이 1입니다. 이는 $var2가 별칭 참조일 뿐이며 해당 값이 어떤 방식으로든 변경되지 않았음을 증명합니다. 즉, 전역 $var는 실제로 $var = &$GLOBALS['var']이며, 이는 외부 변수를 호출하기 위한 별칭일 뿐입니다!

프로그래밍 학습에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!

위 내용은 PHP 전역 변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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