재인식 PHP 역할 영역

5725 단어 PHP
안녕하세요.
이번에는 PHP 오실로그래프에 대해서 써보고 싶어요.
별다른 내용이 적혀있지 않으니 상급 PHPer 여러분들이 지나가게 해주세요
이번 참고는 당연히 정식이죠.
변수 역할 영역

역할 영역 유형


PHP의 역할 범위는 3가지입니다.
  • 로컬 역할 영역
  • 전역 역할 영역
  • 슈퍼 글로벌
  • 로컬 역할 영역


    이것은 함수 내의 작용역이다
    <?php
    
        function func1()
        {
            $val = 'ローカルスコープ';
            return $val;
        }
    
        echo $val;
        echo func1();
    
    
    이 출력은 아래와 같다
    >                 // echo $val;
    >ローカルスコープ   // echo func1();
    
    함수에 정의된 변수$val가 출력되지 않았기 때문에 이 변수는 로컬 변수로 간주됩니다
    기본적으로 응용 프로그램을 제작할 때에는 의식적으로 로컬 범위의 프로그래밍을 진행해야 한다

    전역 역할 영역


    이것은 함수에 정의되지 않은 변수의 작용역이다
    전역만 가지지만 함수 내에서 직접 사용할 수 없습니다
    <?php
    
        $val = 'グローバルスコープ';
    
        function func2()
        {
            return $val;
        }
    
        echo $val;
        echo func2();
    
    
    이걸 수행하면...echo $val; 1자 출력グローバルスコープecho func2();Undefined Variable: val라고 불리며 $val 변수를 식별할 수 없습니다.
    이걸 인식할 수 있다면.
        function func2()
        {
            global $val; // globalキーワードを使用
            return $val;
        }
    
    글로벌 키워드를 사용하여 함수 이외의 값을 사용합니다
    단, 함수에서 외부 값을 사용하려면 글로벌 키워드를 사용하지 말고 매개 변수에 추가하십시오
    글로벌 추적 프로그램도 어렵고 시험도 어려워요.

    슈퍼 글로벌


    모든 범위에서 사용할 수 있는 삽입식 변수라고 쓰여 있습니다
    이것들은 바로
  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV
  • 자주 쓰고 있어요.
    다만, 어디서든 사용하고 싶은 변수를 $GLOBALS에 무의미하게 삽입하지 마세요.
    이것도 전역 변수와 마찬가지로 추적하기 어려운 코드 요소이다
    특히 글로벌 변수의 값을 버퍼 값으로 변경할 때 매우 위험하다

    함수 이외의 괄호의 작용역 검증


    내가 PHP를 오랫동안 사용했지만 개의치 않는 것은 for문 시 선언의 변수를 사용하는 것이다
    Scara의 경우
    var num = 10
    
    println(num)
    
    for ( n <- (1 to 3) ) {
      var num = n*3
      println(num)
    }
    
    println(num)
    
    결과 내보내기
    3
    6
    9
    10
    
    먼저 Scara에 var을 넣어서 사용하지 않도록 합니다.
    for에서 성명한 변수는 괄호 안에서 완성됩니다
    처음 성명var num = 10할 때 괄호 안에 같은 변수 이름num을 성명하더라도 마지막으로println(num)으로 10을 출력합니다
    이게 기준이라고 생각하면 함정에 빠질 수 있어요.
    $i = 10;
    
    println($i);
    
    for ($i=1; $i<=3; $i++) 
    {
        println($i);
    }
    
    println($i);
    
    ※ println은 자신이 만든 줄 바꿈 echo
    결과 내보내기
    10
    1
    2
    3
    4
    
    마지막 출력은 10을 기대했지만 4를 출력했다
    for문이 괄호 안에 끝날 줄 알았으면 덮어쓰였으니 주의해야 합니다
    if식이든 일반적인 괄호 안이든 Scara는 모두 작용 범위가 있고 PHP는 함수 안이든 다른 부분이든 구분하는 방법이다
    적어놓고 계속 PHP를 치는 것 같아서 평소에 안 하던 부분에서도 기대를 못 이룰 때가 있어요.
    어떻게 된 건지... 변수명이 붙지 않도록 꾸준한 노력이 필요해

    감상


    최고 수준
    함수를 잘 만들어서 작용 범위를 깨닫게 되면 비극은 일어나지 않을 거라고 생각해요 그게 기본이에요
    이것뿐이다

    좋은 웹페이지 즐겨찾기