zoukankan      html  css  js  c++  java
  • PHP变量的初始化以及赋值方式介绍

    什么是变量

    变量通俗的来说是一种容器。根据变量类型不同,容器的大小不一样,自然能存放的数据大小也不相同。在变量中存放的数据,我们称之为变量值。

    PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。在PHP中变量的命名规则通常是以字母或下划线开头,由字母、数字、下划线组成。变量名通常由声明变量所代表意义的英文单词组成。单词与单词之间通过_分隔,或者第一个单词首字母小写,之后每个单词首字母大写。这种命名方式我们称之为驼峰命名法。良好的命名规范有助于提高我们代码的可读性。

    1

    2

    3

    4

    5

    6

    7

    <?php

        $name = '屋脊猫';

        $_age = 1;

        $sex = '男';       

        echo "姓名:{$name},年龄:{$_age}, 性别:{$sex}";

        $1sex = '男'// 错误,不能以数字开头

    ?>

    变量的初始化

    变量的初始化是给变量设置一个默认值(或者是需要的值),初始化的过程中PHP会给变量分配存储空间以及将变量值所在存储空间地址保存在变量中。

    1

    2

    3

    <?php

        $a = 1; // 初始化一个整形变量

    ?>

    虽然在PHP中不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值

    ● 布尔类型的变量默认值是 FALSE

    ● 整形和浮点型变量默认值是零

    ● 字符串型变量(例如用于 echo 中)默认值是空字符串

    ● 数组变量的默认值是空数组

    使用未初始化的变量会发出 E_NOTICE错误,但是在向一个未初始化的数组附加单元时不会。

    依赖未初始化的变量的默认值在某些情况下会有问题,比如在之后的编码中我们需要经常的将一个文件通过include包含到当前文件,如果两个文件中有相同的变量名,此时的变量值则不是我们需要的默认值了。另外在PHP 5.4.0之前的版本中把 register_globals打开是一个主要的安全隐患。在PHP 5.4.0之后该配置已被移除。

    变量的赋值方式

    在PHP中有两种传值方式,分别为传值赋值和引用赋值。

    1.传值赋值

    传值赋值是PHP中默认的传值方式。那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。如:

    1

    2

    3

    4

    5

    6

    7

    <?php

        $var1 = 1;

        $var2 = $var1;

        $var1 = 3;

        echo $var1;     // 3

        echo $var2;     // 1

    ?>

    2.引用赋值

    引用赋值意味着新的变量简单的引用了原始的变量,改变了新的变量的值将影响到原始的变量的值,反之亦然。使用引用赋值,只需简单地将一个 & 符号加到将要赋值的变量前(源变量)如:

    1

    2

    3

    4

    5

    6

    7

    <?php

        $oldVar = 1;

        $newVar = &$oldVar;

        $newVar = 2;

        echo $oldVar;   // 2

        echo $newVar;   // 2

    ?>

    &符在C语言中称之为取地址符,变量保存了变量值在内存中的存储地址,通过取地址符可以将一个变量保存的变量值的地址赋值给另一个变量。两个变量的值指向了同一个内存地址,所以当我们修改其中一个变量的值时,另一个变量的值自然而然的随之被改变。

    有一点重要事项必须指出,那就是只有有名字的变量才可以引用赋值。

    1

    2

    3

    4

    5

    <?php

        $foo = 25;

        $bar = &$foo;      // 合法的赋值

        $bar = &(24 * 7);  // 非法; 引用没有名字的表达式

    ?>

    在(24*7)这个表达式中因为没有保存在变量中,所以没有明确的内存地址,通过取地址符去获取在内存中存储的地址是不可取的。

     能掌握以上技术这些人必然具备在技术上有独当一面的能力,从一个 Coder 逐步走向 CTO 或是 架构师。为了大家能够顺利进阶高级、架构师,我特地为大家准备了一套精品PHP架构师教程,适合1-5年内PHP开发人员,顺利突破 25K+ 的薪资。

     

    找管理领取进阶学习路线和视频文档资料即可

    点此链接申请加入Swoole官方群:正在跳转

  • 相关阅读:
    结构型模式之桥接模式
    结构型模式之适配器模式
    使用AutoCloseable 实现自动关闭资源
    创建型模式之多例模式
    创建型模式之原型模式
    创建型模式之单例模式
    创建型模式之Builder(建造者)模式
    创建型模式之工厂模式
    JavaScript------对象的使用
    JavaScript------分页插件下载地址
  • 原文地址:https://www.cnblogs.com/heyue0117/p/11862849.html
Copyright © 2011-2022 走看看