>  기사  >  백엔드 개발  >  $GLOBAL[''] 및 키워드 global이 PHP의 정적 변수에 의해 영향을 받는 이유는 무엇입니까?

$GLOBAL[''] 및 키워드 global이 PHP의 정적 변수에 의해 영향을 받는 이유는 무엇입니까?

WBOY
WBOY원래의
2016-12-01 00:01:22941검색

답글 내용:

이 문제가 처음 발생했습니다. 조금 궁금합니다. 질문자는 이 문제를 어떻게 발견했습니까?

제가 이해한 바를 설명하겠습니다.

먼저 '과제'의 개념을 명확히 할 필요가 있습니다.

$a = 1;이라고 해서 이름이 $a이고 값이 1인 데이터를 추가한다는 의미는 아닙니다.
$b = &$a;라고 해서 $b가 $a를 가리키거나 그 반대의 경우도 마찬가지입니다.

과정은 이렇습니다.
<code class="language-php"><span class="x">$a = 1;</span>
</code>
PHP 매뉴얼을 읽어보세요. 많은 예제가 있습니다
PHP: 변수 범위
PHP: 참조 설명
PHP: 참조로 전달
PHP: 참조의 역할



가변 범위

변수의 범위는 변수가 정의된 컨텍스트(즉, 유효 범위)입니다. 대부분의 PHP 변수에는 단일 범위만 있습니다. 이 단일 범위 범위에는 다음도 포함됩니다. include 및 require에 의해 도입된 파일입니다. 예를 들어:


<code class="language-php"><span class="cp"><?php</span>
<span class="nv">$a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">include</span> <span class="s1">'b.inc'</span><span class="p">;</span><span class="cp">?></span><span class="x"></span>
</code>
<code class="language-text">global $a;
时会 新建 一个指向与外部$a同地址的指针

$GLOBALS['a'] = &$static_a;
时会 把外部$a 指针 指向 $static_a的内容,抛弃原先的指向
</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.