• PHP学习记录之变量


    前言

    考虑到性能测试中经常接触到web后端的php文件,并且个人博客建站也是基于php的,所以准备了解一哈这个号称是世界上最好的语言的语言。

    变量

    命名

    //变量名区分大小写;
    //变量不能数字开头;
    //变量名只能包含字母数字字符以及下划线;
    $name = 'wangyi';
    var_dump($name); //string(6)"wangyi"
    $name = 12222;
    var_dump($name); //int(12222)
    // $123 = 1; error
    echo "<br>";

    isset和unset

    $age = '18';
    $res = isset($age);
    echo $res; // 1
    var_dump($res); // bool(true)
    echo "<br>";

    $name = null;
    echo "name的值是:",$name; // 输出为空
    var_dump($name); // NULL
    $res = isset($name);
    echo $res; //空
    var_dump($res); //bool(false)

    $haha = 666;
    unset($haha); //去除的是变量中保存的内存地址
    var_dump($haha); // error,undefined variable

    值传递

    / /赋值传值

    附上一张网上找的图,画的很详细:


    $a=111;
    $b=$a; //重新开辟一块内存空间
    echo $b; // 111
    $a=222;
    echo $b; // 111
    echo '<br>';
    $c=333;
    $d=$c;
    $d=444;
    echo $c; // 333

    echo '<br>';

    //引用传值,php中&符号能改变传值方式


    $a=1;
    $b=&$a; //变量b保存的内存地址和变量a一致,指向同一片内存
    $b=2;
    echo "a的值是:",$a;// 2 ,在内存上2直接覆盖1
    echo '<br>';
    $a=3;
    echo $b; // 3

    unset($a);
    echo $b; // 3

    echo '=============================================';
    /*

    注意:
    python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值,相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象,相当于通过“传值'来传递对象。
    */

    变量作用域

    //局部变量和全局变量,global关键字

    $a = 1;
    $c = 3;
    function test(){
    echo $a;// error
    $b = 2;
    echo $b;// 2
    global $a,$c; //全局声明
    echo $a; // 1
    echo "<br>";

    $c = $c + $b;
    echo $c; // 5,这还是全局变量
    echo "<br>";

    //PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来访问全局变量。
    //上面两行等价于下面:
    $GLOBALS['c'] = $GLOBALS['c'] + $b;
    echo $c;// 7

    }

    test();

    echo "<br>";
    echo $a; // 1
    echo $b; //error,外不能调用内的
    echo $c; // 7
    echo '<br>';

    Static 作用域

    function test2(){
    $a=1;
    echo $a; //1
    $a++;
    echo '<br>';
    }
    //当一个函数完成时,它的所有变量通常都会被删除。
    test2(); //a=1
    test2(); //a=1


    function test3(){
    static $a=1;
    echo $a; //1
    $a++;
    echo '<br>';
    }
    //使用static关键字之后每次调用该函数时,该变量将会保留着函数前一次被调用时的值。该变量仍然是函数的局部变量。
    test3(); //a=1
    test3(); //a=2
    test3(); //a=3

    预定义变量

    $_GET变量

    预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。

     

     

     $_POST变量

    与get一样,不过在地址栏中不展示。

     

    或者两段代码放在一起:

     

    $_REQUEST变量

    $_REQUEST变量是get和post的通用版,用了它无论是get请求还是post都可以。

    $_SERVER变量

    $_SERVER变量记录的是网站访问者的系统信息。

    PHP_SELF: 表示当前请求的网页地址,不含域名部分

    SERVER_NAME:  表示当前请求的服务器名

    SERVER_ADDR: 表示当前请求的服务器IP地址

    DOCUMENT_ROOT: 表示当前请求的网站物理路径

    REMOTE_ADDR: 表示当前请求的客户端的IP地址

    SCRIPT_NAME: 表示当前网页地址

    可变变量


    $a=1;
    echo $a; // 1
    $b='a';
    echo $$b; // 1,$$b就是所谓的可变变量

    常量

    // 1、常量是一个简单值的标识符。该值在脚本中不能改变,不可重新赋值。

    // 2、一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

    // 3、常量在定义后,默认是全局变量,在整个脚本中都可以使用。
    // 两种定义形式,define()函数形式和const关键字形式
    define('pi', 3.1415926);
    define('PI', 3.1415927,true); //error,不区分大小写提示变量已存在
    function test11(){
    echo pi; //3.1415926
    }
    test11();
    //const 关键字定义常量
    const PI = 3.1416;

    判断常量是否存在
    if (defined('PI')) {
    echo "常量PI已经存在";
    }

  • 相关阅读:
    vue-搜索功能-实时监听搜索框的输入,N毫秒请求一次数据
    vue-注册全局过滤器
    vue-nuxt--切换布局文件
    vue.js 分页加载,向上滑动,依次加载数据。
    Vue.js项目引入less文件报错解决
    小程序/js监听输入框验证金额
    React 安装
    类垂直站点插件实现与分享
    多维度论怎样在日常中提升
    node.js的安装环境搭建
  • 原文地址:https://www.cnblogs.com/wangyi0419/p/12334138.html
Copyright © 2020-2023  润新知