안드로이드 프로그래머가 배우는 PHP 개발(22) - 슈퍼 전역 배열/슈퍼 전역 변수 - PhpStorm

黄舟
풀어 주다: 2023-03-06 10:20:01
원래의
1244명이 탐색했습니다.

PHP 사전 정의 배열이라고도 알려진 PHP 슈퍼 글로벌 배열은 PHP 엔진에 내장되어 있으며 개발자가 재정의할 필요가 없습니다. PHP 스크립트가 실행되면 PHP는 자동으로 일부 데이터를 슈퍼 전역 배열에 배치합니다.

PHP에서 미리 정의된 많은 변수는 "수퍼글로벌"입니다. 즉, 스크립트의 전체 범위에서 사용할 수 있습니다. 전역 $variable;을 실행하지 않고도 함수나 메서드 내에서 액세스할 수 있습니다.

php super 전역 변수 목록:

$_GET[] GET 메소드로 제출된 변수 배열 가져오기

$_POST[] POST 메소드로 제출된 변수 배열 가져오기

$_COOKIE[] 현재 웹사이트의 쿠키 식별자 가져오기 및 설정

$_SESSION[] sessionid 및 사용자 정의 세션 데이터와 같이 배열 형식으로 표현된 현재 사용자 액세스의 고유 식별자를 가져옵니다

$_ENV[] 현재 PHP 환경변수 배열

$_SERVER[] 현재 PHP 서버 변수 배열

$_FILES[] 현재에 제출된 매개변수 값 파일 업로드 시 스크립트, 배열 형식으로 표현

$_REQUEST[]에는 현재 스크립트에서 제출한 모든 요청, $_GET, $_POST, $_COOKIE

$GLOBALS[] 실행 스크립트의 모든 슈퍼 전역 변수에 대한 참조 내용을 포함합니다.

index.php:

<?php
    /**
     * 超全局数组/超全局变量
     * PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。
     * 在函数或方法中无需执行 global $variable; 就可以访问它们。
     * 这些超全局变量是:
        $_GLOBALS       Global变量
        $_SERVER        服务器变量
        $_REQUEST       request变量
        $_POST      HTTP POST变量
        $_GET       HTTP GET变量
        $_FILES     HTTP文件上传变量
        $_ENV       环境变量
        $_COOKIE        HTTP Cookies
        $_SESSION       Session变量
     */

    echo getip();
    echo "<br>";

    echo getip2();
    echo "<br>";

    /**
     * 遍历$_SERVER数组
     */
    foreach ($_SERVER as $key => $value){
        echo "{$key}  =>  {$value} <br>";
    }

    /**
     * 服务器IP的函数--笔试0分的写法
     */
    function getip(){
        return $_SERVER[&#39;REMOTE_ADDR&#39;];
    }

    /**
     * 服务器IP的函数--正确写法
     */
    function getip2(){
        if (!empty($_SERVER[&#39;HTTP_CLIENT_IP&#39;])){
            return $_SERVER[&#39;HTTP_CLIENT_IP&#39;];
        }elseif (!empty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])){
            return $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;];
        }elseif (!empty($_SERVER[&#39;REMOTE_ADDR&#39;])){
            return $_SERVER[&#39;REMOTE_ADDR&#39;];
        }else{
            return &#39;未知IP&#39;;
        }
    }
    ?>

    /**
     * GET
     */
    <br>
    <a href="demo.php?action=add&id=5&name=admin">测试页面</a><br>

    /**
    * POST
    * nickname[]下标会自增,跟数组没有区别
    */
    <br>
    <form action="demo.php?nick=www&psw=yyy" method="post">
        nickname:<input type="text" name="nickname[]"/><br>
        nickname:<input type="text" name="nickname[]"/><br>
        nickname:<input type="text" name="nickname[]"/><br>
        nickname:<input type="text" name="nickname[9]"/><br>
        nickname:<input type="text" name="nickname[]"/><br>
        nickname:<input type="text" name="nickname[x]"/><br>
        nickname:<input type="text" name="nickname[]"/><br>
        username:<input type="text" name="name"/><br>
        age:<input type="text" name="age"/><br>
        sex:<input type="text" name="sex"/><br>

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

<?php
    /**
     * $_SESSION
     *
     * Session 函数:
     * http://www.php.cn/
     *
     * Session 开始、存储、终结:
     * http://www.php.cn/
     */
    echo &#39;---------- $_SESSION ----------<br>&#39;;
    session_start(); // 启动新会话或者重用现有会话
    $_SESSION[&#39;name&#39;]="hello";
    print_r($_SESSION); // 打印结果:Array ( [name] => hello )
    session_unset(); // 释放所有的会话变量
    session_destroy(); // 销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。
                        // 如果需要再次使用会话变量, 必须重新调用 session_start() 函数
    session_write_close(); // 结束当前会话并存储会话数据
    setcookie(session_name(),&#39;&#39;,0,&#39;/&#39;); // session_name — 读取/设置会话名称
                                        // setcookie() 函数向客户端发送一个 HTTP cookie。
    session_regenerate_id(true); // 在不修改当前会话中数据的前提下使用新的 ID 替换原有会话 ID
    echo "<br>";

    /**
     * $GLOBALS 引用全局作用域中可用的全部变量
     * 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
     */
    echo &#39;---------- $GLOBALS ----------<br>&#39;;
    echo "<pre class="brush:php;toolbar:false">";
    print_r($GLOBALS); // 打印以上所有结果
    echo "
";
로그인 후 복사

demo.php : (index.php와 함께 사용)

<?php
    /**
     * $_GET 只能接get
     */
    print_r($_GET);
    echo "<br>";
    print_r($_GET[&#39;action&#39;]);
    echo "<br>";

    /**
     * $_POST 只能接post
     */
    print_r($_POST);
    echo "<br>";

    /**
     * $_REQUEST 能接get和post
     * 但是,容易被黑客攻击,因为什么都能接
     * 所以需要get就用$_GET,需要post就用$_POST
     * 忽略$_REQUEST的存在
     */
    print_r($_REQUEST);
    echo "<br>";

    /**
     * 不确定get还是post
     * 可以使用下面的写法
     */
    $arr = !empty($_POST) ? $_POST : $_GET;
로그인 후 복사

이상 PHP 개발을 배우는 안드로이드 프로그래머의 내용입니다. (22) - 슈퍼 전역 배열/슈퍼 전역 변수 - PhpStorm에 대한 자세한 내용은 참고해주세요. PHP 중국어 홈페이지(www.php.cn)!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!