PHP 사용자 정의 함수의 가변 범위

이전 장의 함수 정의 부분을 학습하여 여러 가지 규칙을 알 수 있습니다.

함수를 정의할 때 괄호 안의 변수는 형식 매개변수( 형식 매개변수)와 함수 외부의 변수와는 아무런 관련이 없습니다. 함수 내에서만 실행

함수 내에서 선언된 변수는 함수 외부의 변수와 아무런 관련이 없습니다.

그러나 실제 처리에서는 이런 상황에 직면하게 됩니다.

함수 본문에 정의된 변수를 함수 외부에서 사용하고 싶습니다.

함수 본문에 정의된 변수를 사용하고 싶습니다. 함수 몸체 외부의 변수는 함수 내부에서 사용됩니다

이때 슈퍼 전역 변수를 사용해야 합니다. 이전 지식 포인트를 복습해 보겠습니다.

全局变量名功能说明
$_COOKIE得到会话控制中cookie传值
$_SESSION得到会话控制中session的值
$_FILES得到文件上传的结果
$_GET得到get传值的结果
$_POST得到post传值的结果
$_REQUEST即能得到get的传值结果,也能得到Post传值的结果

실험을 통해 외부 변수(수퍼 전역 변수)의 특성을 관찰하고 이 장의 시작 부분에서 요약한 규칙을 깨보겠습니다.

HTML 콘텐츠를 작성하기 위해 global.html 페이지를 정의해 보겠습니다.

<html>
   <head>
       <title>超全局数组实验</title>
   </head>
   <body>
       <!--先用POST来实验,以后你可以改成GET哟 -->
       <form action="glob.php" method="post">
           <input type="text" name="hongniu" /><br />

           <input type="submit" value="提交" />
       </form>

   </body>
</html>

양식 양식을 통해 glob.php 페이지에 html 콘텐츠를 제출했습니다. 이제 glob.php를 작성해 보겠습니다.

<?php 
function demo(){ 
echo $_POST['hongniu']; 
} 
demo(); 
?>

이 작은 예를 통해 슈퍼- global $ _POST와 같은 일련의 슈퍼전역 변수(외부 변수)를 함수 내에서 사용할 수도 있습니다. 이 문서의 시작 부분에는 변수 범위에 대한 제한이 없습니다. 사실 우리가 선언하는 모든 변수는 $GLOBALS 배열 아래에 배치됩니다. 예:

<?php
$hello = 10;

echo $GLOBALS['hello'].'<br />';

$GLOBALS['hello'] = '我爱你';

echo $hello;

?>

위의 예를 통해 $ 변수 이름이 동일하다는 것을 알 수 있습니다. $ GLOBALS['변수 이름'] . 모든 변수는 $GLOBALS에 배치됩니다. 그리고 $GLOBALS도 전역적입니다.

따라서 목표를 달성할 수 있습니다. 즉, 함수 외부의 함수 본문에 있는 변수(지역 변수)를 사용하는 것입니다. 함수 내부에서 함수 외부의 변수를 사용할 수도 있습니다.

1. $GLOBLAS를 통해 외부 변수 읽기

<?php

$one = 10;

function demo(){
   $two = 100;

   $result = $two + $GLOBALS['one'];

   return $result;

}
//你会发现结果变成了110
echo demo();

?>

위의 예에서는 $GLOBALS를 통해 함수 본문 외부의 변수를 가져와서 함수 본문에서 사용합니다. . 따라서 함수 외부의 변수를 함수 본문 내에서 사용할 수 없다는 제한이 깨졌습니다.

2. $GLOBLAS를 통해 함수 내의 외부 변수를 수정합니다.

<?php

$hongniu = '我是一个兵,来自老百姓';

function test(){

   echo '执行了函数test哟<br />';
   //调用test()函数,将通过$GLOBALS['hongniu'],把$hongniu的值改变掉

   $GLOBALS['hongniu'] = '帮助别人很快乐';
}

test();
//发现是不是输出的值变了呀?
echo $hongniu;

?>

위의 예를 통해 $GLOBALS['hongniu'], $hongniu의 The 값이 변경되므로 최종적으로 $hongniu가 출력되면 값이 변경됩니다.

3. $GLOBLAS를 통해 함수 내에서 전역 변수를 생성합니다.

<?php

function hello(){

   $GLOBALS['que'] = '提神喝茶更好哟';

   echo '你调了一下函数hello<br />';
}

hello();

echo $que;

?>

위의 예에서는 $que가 존재하지 않는 것을 확인했으며, function hello() 마지막으로 echo $que 는 함수 외부에서 실행될 수 있으며 결과를 볼 수 있습니다. 기분 전환을 위해 차를 마시는 것이 좋습니다. 함수 내에서 선언된 변수는 $GLOBALS를 통해 변수를 선언하여 표시할 수도 있다는 것을 알고 있습니다.

다음 지식은 [이해] 수준이며, 전역 변수를 선언할 때 이 방법을 점점 더 적게 사용합니다. 함수 내에서 전역 키워드 뒤에 하나 이상의 변수를 사용하면 해당 변수가 전역 변수로 전환됩니다.

global $variable1[, Variable2,....variablen ]

Global 뒤에는 하나 이상의 변수가 올 수 있으며 변수는 쉼표로 구분됩니다.

<?php
$a = 10;
$b = 100;
function test(){
   global $a , $b;
   echo $a + $b;
}
//结果是不是显示出来了?
test();
?>

위의 예에서는 생성되지 않은 변수로 전역 키워드를 따르고, 함수 본문에 변수 값을 정의하고, 변수 값을 수정해 볼 수도 있습니다. 실제로 $GLOBALS와 동일하지만 사용법이 다릅니다.

참고:
global 뒤에 $variable = value를 쓰지 마세요.


글로벌
발음: [ˈgləʊbl]
설명: 글로벌, 글로벌

지속적인 학습
||
<?php function hello(){ $GLOBALS['que'] = '提神喝茶更好哟'; echo '你调了一下函数hello<br />'; } hello(); echo $que; ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~