资讯专栏INFORMATION COLUMN

PHP变量

Michael_Ding / 1203人阅读

摘要:在变量中存放的数据,我们称之为变量值。中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。在中变量的命名规则通常是以字母或下划线开头,由字母数字下划线组成。变量名通常由声明变量所代表意义的英文单词组成。

什么是变量

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

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


变量的初始化

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




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

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

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

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

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

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

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

变量的赋值方式

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

1.传值赋值

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


2.引用赋值

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


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

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


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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28438.html

相关文章

  • PHP执行原理

    摘要:执行原理是一门应用非常简单,开发效率极高的一门语言,其弱类型的变量能省去程序员大量的定义变量类型转换等的时间和精力。程序最终被翻译为一组处理函数的顺序执行。只有减为时才会真正执行销毁操作。 PHP执行原理 php是一门应用非常简单,开发效率极高的一门语言,其弱类型的变量能省去程序员大量的定义变量、类型转换等的时间和精力。它是一种适用于web开发的动态语言。 1. php设计的原理和特点...

    silvertheo 评论0 收藏0
  • zval _ 引用计数 _ 变量分离 _ 写时拷贝

    摘要:引用计数变量分离写时拷贝我们一步步来理解语言特性是脚本语言,所谓脚本语言,就是说并不是独立运行的,要运行代码需要解析器,用户编写的代码最终都会被解析器解析执行的执行是通过引擎,是用编写的用户编写的代码最终都会被翻译成的虚拟机的虚拟指令来执行 zval、引用计数、变量分离、写时拷贝我们一步步来理解1、php语言特性PHP是脚本语言,所谓脚本语言,就是说PHP并不是独立运行的,要运行PHP...

    happyfish 评论0 收藏0
  • php底层原理之变量(一)

    摘要:对于来说,变量有全局变量和局部变量之分那么,他们都是存储到一个哈希表内了么其实不是的,变量存储也有作用域的概念。 上次跟大家讲了垃圾回收机制后,有些小伙伴对底层原理比较感兴趣,私信问我了一些关于变量的相关知识,既然大家对变量比较感兴趣,那么这次我们来系统的讲一下变量的底层原理 变量结构 首先,我们还是先摆上我们的zval结构体,即php所有变量都会以zval结构体的形式实现 struc...

    curlyCheng 评论0 收藏0
  • php超全局变量,魔术常量,魔术方法

    摘要:注意和是不同的变量,处理它们的方式不同变量说明默认情况下包含了,和的数组。包含相同的信息,但它不是一个超全局变量。这些特殊的常量不区分大小写,如下几个的魔术常量名称说明文件中的当前行号。 整理了下关于php的基础知识,参考了些资料,如下: 超全局变量 超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量: $GLOBALS $GLOBALS — 引用全局作用域中可用的全部变量 ...

    mj 评论0 收藏0
  • php底层原理之垃圾回收机制

    摘要:总结垃圾回收机制以的引用计数机制为基础以前只有该机制同时使用根缓冲区机制,当发现有存在循环引用的时,就会把其投入到根缓冲区,当根缓冲区达到配置文件中的指定数量后,就会进行垃圾回收,以此解决循环引用导致的内存泄漏问题开始引入该机制 php垃圾回收机制,对于PHPer来说是一个不陌生但是又不是很熟悉的内容。那么php是怎么实现对不需要的内存进行回收的呢? php变量的内部存储结构 首先还是...

    light 评论0 收藏0
  • PHP学习记录(基础)

    摘要:最后改为超文本预处理器,于年诞生。注释单行注释多行注释你好单行注释你也好单行注释多行注释大家都好变量由一个美元符号后面跟变量名来表示变量名区分大小写。可变变量可变变量一个变量的变量名可以动态设置和使用。 PHP简介 最初用于维护个人主页,简写为:Personal HomePage。最后改为:Hypertext Preprocessor(超文本预处理器),于1994年诞生。 优势 性...

    crossoverJie 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<