방법: 1. 전역 키워드를 사용하고 메서드에서 "전역 $external 변수 이름" 문을 사용하여 외부 변수를 가져옵니다. 2. "$GLOBALS" 변수를 사용하고 "$GLOBALS['a ' ]" 문은 외부 변수를 참조할 수 있습니다. 3. 값 전송을 사용하여 외부 변수를 매개변수로 전달합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
오늘 외부 전역 변수를 호출하려고 했을 때 결과는 다음과 같습니다. 오류가 보고되었거나 출력이 없습니까?
이유와 해결책에 대해 이야기해 보겠습니다.
Variablescope
사용자 정의 메서드(함수)에는 로컬 함수 범위가 도입됩니다. 함수 내에서 사용되는 모든 변수는 기본적으로 로컬 함수 범위로 제한됩니다. 예:
<?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?>
echo 문이 변수 $a의 로컬 버전을 참조하고 이 범위의 값이 할당되지 않았기 때문에 이 스크립트는 출력을 생성하지 않습니다.
PHP의 전역 변수는 C 언어와 약간 다르다는 것을 알 수 있습니다. C 언어에서 전역 변수는 로컬 변수에 의해 재정의되지 않는 한 자동으로 함수에 적용됩니다. 이로 인해 일부 문제가 발생할 수 있으며 누군가 실수로 전역 변수를 변경할 수도 있습니다. PHP의 전역 변수는 함수에서 사용될 때 전역으로 선언되어야 합니다.
첫 번째 해결 방법: 전역 키워드---함수 외부의 변수를 함수 내에서 전체적으로 선언합니다.
<?php $a = 1; $b = 2; $c = 3; function demo(){ global $a,$b,$c; echo '$a = '.$a; echo '<br>$b = '.$b; echo '<br>$c = '.$c; } demo(); ?>
출력 결과를 살펴보세요.
분석:
전역 키워드의 역할은 다음과 같습니다. 전역 변수, 전역 변수 1, 변수 2, ...
형식을 사용하여 전역 변수 1, 변수 2...
를 함수의 로컬 범위로 가져옵니다. 함수 내부에서 함수 외부에 정의된 전역 변수를 사용할 수 있습니다. global 变量1, 变量2, ...
的形式把全局变量1, 变量2...
导入到一个函数的局部范围内,就可以在函数内部使用在函数外部定义的全局变量了。
使用 global 关键字需要注意一下几点:
global 关键字,只能在函数内部使用,不能在函数外部使用;
global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;
在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。
第二种解决方法:利用$GLOBALS超全局变量
<?php $a = 1; $b = 2; $c = 3; function demo(){ echo '$a = '.$GLOBALS['a']; echo '<br>$b = '.$GLOBALS['b']; echo '<br>$c = '.$GLOBALS['c']; } demo(); ?>
输出结果为:
分析:
$GLOBALS
是一种预定义变量(又叫超全局变量),是包含所有变量的全局组合数组,变量的名称就是数组的键,可以使用$GLOBALS['变量名']
的形式来访问指定全局变量。只要是出现过的全局变量,就可以通过$GLOBALS
글로벌 키워드는 함수 외부가 아닌 함수 내부에서만 사용할 수 있습니다.
두 번째 해결 방법: $GLOBALS 슈퍼 전역 변수를 사용하세요
<?php header('content-type:text/html;charset=utf-8'); $mytext="PHP中文网"; function chao_echo($mytext){ echo $mytext; } chao_echo($mytext); ?>
분석:
$GLOBALS
는 일종의 사전 정의된 변수(슈퍼 전역 변수라고도 함)입니다. 는 모든 변수를 포함하는 전역 결합 배열입니다. 변수 이름은 $GLOBALS['변수 이름']
형식을 사용하여 지정된 전역 변수에 액세스할 수 있습니다. 등장한 전역변수라면 $GLOBALS
배열을 통해 얻을 수 있다.
위 내용은 PHP의 메소드에서 외부 변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!