>백엔드 개발 >PHP 문제 >PHP 전역 변수를 함수 내에서 사용할 수 없으면 어떻게 해야 합니까?

PHP 전역 변수를 함수 내에서 사용할 수 없으면 어떻게 해야 합니까?

青灯夜游
青灯夜游원래의
2021-10-08 18:36:423669검색

해결책: 1. 전역 키워드를 사용하여 함수 내에서 전역 변수를 가져옵니다. 구문은 "전역 전역 변수 1, 전역 변수 2, ..."입니다. 2. 슈퍼 전역 변수 "$GLOBALS"를 사용하여 액세스합니다. 지정된 전역 변수, 구문 "$GLOBALS['전역 변수 이름']".

PHP 전역 변수를 함수 내에서 사용할 수 없으면 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

일반적으로 전역 변수는 함수 내에서 사용할 수 없지만 때로는 함수 내에서 전역 변수를 사용해야 합니다. ?

PHP는 전역 키워드와 $GLOBALS 슈퍼 전역 변수라는 두 가지 솔루션을 제공합니다.

방법 1. 전역 키워드

<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
	global $a,$b,$c;
    echo &#39;$a = &#39;.$a;
    echo &#39;<br>$b = &#39;.$b;
    echo &#39;<br>$c = &#39;.$c;
}
demo();
?>

사용 , ... 전역 변수 1, 변수 2...를 함수의 로컬 범위로 가져오고, 함수 외부에서 정의된 전역 변수를 함수 내부에서 사용할 수 있습니다.

글로벌 키워드를 사용할 때 다음 사항에 주의해야 합니다.

global 变量1, 变量2, ...的形式把全局变量1, 变量2...导入到一个函数的局部范围内,就可以在函数内部使用在函数外部定义的全局变量了。

使用 global 关键字需要注意一下几点:

  • global 关键字,只能在函数内部使用,不能在函数外部使用;

  • global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;

  • 在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。

方法2:利用$GLOBALS超全局变量

$a = 1
$b = 2
$c = 3

输出结果为:

<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
    echo &#39;$a = &#39;.$GLOBALS[&#39;a&#39;];
    echo &#39;<br>$b = &#39;.$GLOBALS[&#39;b&#39;];
    echo &#39;<br>$c = &#39;.$GLOBALS[&#39;c&#39;];
}
demo();
?>

分析:

$GLOBALS是一种预定义变量(又叫超全局变量),是包含所有变量的全局组合数组,变量的名称就是数组的键,可以使用$GLOBALS['变量名']的形式来访问指定全局变量。只要是出现过的全局变量,就可以通过$GLOBALS글로벌 키워드는 함수 외부가 아닌 함수 내부에서만 사용할 수 있습니다.

글로벌 키워드는 전역 변수를 참조하는 데만 사용할 수 있습니다. 함수 외부에서는 참조 시 직접 할당할 수 없으며 할당문과 선언문을 별도로 작성해야 합니다.

  • global 키워드로 수정된 변수가 함수 내부에서 소멸되면 함수 외부의 변수는 영향을 받지 않습니다.

  • 방법 2: $GLOBALS 슈퍼 전역 변수 사용

    $a = 1
    $b = 2
    $c = 3

    출력 결과는 다음과 같습니다.

    rrreee

    분석:

  • $GLOBALS는 사전 정의된 변수(슈퍼 전역 변수라고도 함)입니다. 는 모든 변수를 포함하는 전역 결합 배열입니다. 변수 이름은 $GLOBALS['변수 이름'] 형식을 사용하여 지정된 전역 변수에 액세스할 수 있습니다. 등장한 전역변수라면 $GLOBALS 배열을 통해 얻을 수 있다.

global과 $GLOBALS

🎜🎜🎜global의 차이점은 함수 외부가 아닌 함수 내부에서만 사용할 수 있는 반면, $GLOBALS는 프로그램 내 어디에서나(함수 내부 및 외부) 사용할 수 있습니다. 🎜🎜🎜🎜global 키워드로 수정된 변수가 함수 내에서 소멸되면 함수 외부의 변수는 영향을 받지 않지만 $GLOBALS는 영향을 받습니다. 🎜🎜이유: 🎜🎜$var 변수를 수정하기 위해 전역 키워드를 사용할 경우, 내부와 외부는 서로 영향을 미치지 않는 두 개의 변수입니다. $GLOBALS['var']는 함수를 참조합니다. 외부 변수 자체는 변수입니다. 🎜🎜🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP 전역 변수를 함수 내에서 사용할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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