글로벌 변수가 도시에 오고 있습니다

9430 단어 webdevphp

Just the Gist

Global variables are accessible from anywhere in your code with the global keyword. Superglobals are available anywhere without ever using the global keyword. The superglobals allow us to do some fancy things around web-related things, like greeting the user by their name 😎



전 세계적으로



전역 변수는 응용 프로그램의 어디에서나 사용할 수 있습니다. 일반적으로 global $serverName 를 사용하여 전역 변수에 액세스합니다. PHP가 전역 변수를 제공할 때 우리는 이를 Superglobals라고 부르며 global 키워드가 필요하지 않습니다. 다음은 초전역입니다.
  • $GLOBALS - 사용자 정의 변수를 포함하여 모든 전역 변수를 포함하는 연관 배열입니다.
  • $_SERVER - 헤더, 경로 및 스크립트 위치에 대해 서버에서 제공하는 정보입니다.
  • $_GET - HTTP GET 메소드를 통해 현재 스크립트에 전달된 변수의 연관 배열입니다.
  • $_POST - HTTP POST 메소드를 통해 현재 스크립트에 전달된 변수의 연관 배열입니다.
  • $_FILES - 업로드된 파일 정보를 포함합니다. POST method uploads
  • $_COOKIE - HTTP 쿠키를 통해 현재 스크립트에 전달된 변수의 연관 배열입니다.
  • $_SESSION - 현재 스크립트에서 사용할 수 있는 세션 변수를 포함하는 연관 배열입니다. 이러한 변수는 여러 스크립트 호출에서 사용할 수 있습니다.
  • $_REQUEST - GET 및 POST 변수를 모두 포함하는 연관 배열입니다.
  • $_ENV - 모든 환경 변수를 포함하는 연관 배열입니다.

  • 💡 모두 연관 배열입니다. PHP에서 이는 변수 이름으로 인덱싱됨을 의미합니다. 따라서 JavaScript에서 온 객체와 유사한 구조를 가지고 있으며 Java와 비교하여 지도처럼 보입니다. 연관 배열의 구조는 다음과 같습니다.

    $array = [
        'name' => 'Rasmus'
    ];
    

    name 를 사용하여 $array['name'] 키 값에 액세스할 수 있습니다.

    REQUEST에는 GET 또는 POST가 있습니다.



    때로는 GET 및 POST에서 데이터에 액세스하려고 합니다. $_REQUEST 초전역은 둘 다의 조합입니다. 두 양식이 모두 포함된 페이지가 있을 때의 모습은 다음과 같습니다. 방문자는 자신의 이름을 입력하고 두 가지 방법 중 하나로 제출할 수 있습니다. 그런 다음 세션 사용과 $_SESSION superglobal을 사용하여 나중에 방문할 때 이름을 "지속"하는 방법을 확인합니다.

    Note: We need to start a session before we can use the $_SESSION superglobal. We name it greetings just because we can 😉



    <?php 
        session_name('greetings');
        session_start();
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <!-- Let's load us some Bootstrap -->
        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
        <title>Greetings!</title>
    </head>
    <body>
        <div class="col-lg-8 mx-auto p-3 py-md-5">
            <main>
    
                <?php 
    
                    $name = 'Guest';
                    if (key_exists('name', $_REQUEST)) {
                        $name = $_REQUEST['name'];
                        $_SESSION['name'] = $name;
                    } 
    
                    if (key_exists('name', $_SESSION)) {
                        $name = $_SESSION['name'];
                    }
    
                ?>
    
    
                <h1>Hello, <?php echo $name; ?></h1>
    
                <h2 class="mt-4">GET Form</h2>
                <form class="d-flex">
                    <div class="form-floating">
                        <input class="form-control" id="name-input" type="text" name="name" placeholder="Guest">
                        <label  for="name-input">Name</label>
                    </div>
                    <input class="btn btn-primary" type="submit" value="Update Name">
                </form>
    
                <h2 class="mt-4">POST Form</h2>
                <form class="d-flex" method="POST">
                    <div class="form-floating">
                        <input class="form-control" id="name-input" type="text" name="name" placeholder="Guest">
                        <label  for="name-input">Name</label>
                    </div>
                    <input class="btn btn-primary" type="submit" value="Update Name">
                </form>
    
            </main>
    
        </div>
    </body>
    </html>
    
    


    여기 우리의 초전역이 있습니다 👇


    당신은 어때요?



    초전역을 사용해 보셨습니까? 그들은 좋은 기능입니까, 아니면 이 언어에 대한 재앙으로 보십니까? 아래에 댓글을 달아 여러분의 생각을 알려주세요 ✍

    추가 자료


  • Superglobals에 대한 공식 문서: https://www.php.net/manual/en/language.variables.superglobals.php
  • 좋은 웹페이지 즐겨찾기