变量标识符

标识符即是变量的名称,PHP 中关于变量的标识符有以下规则:

  • 由任意字母、数字、下划线组成,但不能以数字开头
  • 严格区分大小写

为了科学规范标识符,主要有以下几种流行的命名方式:

1. 驼峰命名法

第一个单词以小写字母开始,之后每个单词的首字母大写(小驼峰法);或每一个单词的首字母都采用大写字母(大驼峰法,也称帕斯卡命名法)。

$myFirstName = 'jochen'; # 小驼峰法
$MyFirstName = 'jochen'; # 大驼峰法
2.匈牙利命名法

变量名 = 属性 + 类型 + 对象描述。

$sMyFirstName = 'jochen';
3.下划线命名法

所有字母均小写,并且每个单词间以下划线分割

$my_first_name = 'jochen';

变量赋值

PHP 提供了两种方式给变量赋值,分别是传值赋值和引用赋值。

最常用的是传值赋值,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。这意味着,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。

引用赋值是原始变量内容的一种别名,不同于 C 语言中的指针,但改动变量的值一样会影响到原始变量。

$foo = 'jochen'; # 传值赋值
$bar = &$foo;    # 引用赋值$bar = 'coco';   # $foo、$bar 的值都为 coco

变量类型

变量类型是指能够保存在该变量中的数据类型。PHP 的数据类型可分为三种:标量数据类型、复合数据类型和特殊数据类型。PHP 标量数据类型有 boolean(布尔型)integer(整型)float(浮点型,也称作 double)string(字符串),复合数据类型有 array(数组)object(对象)callable(可调用),特殊数据类型 resource(资源)NULL(无类型)

PHP 是一种弱类型语言,变量在使用之前并不需要声明类型,且同一变量可以保存多种不同类型的数据。有时,为了判断当前变量的数据类型,我们可以使用以下方法进行判断:

gettype()                 — 获取变量的类型
is_int() 或 is_integer()  — 检测变量是否是整数
is_numeric()              — 检测变量是否为数字或数字字符串
is_float() 或 is_double() — 检测变量是否是浮点型
is_string()               — 检测变量是否是字符串
is_bool()                 — 检测变量是否是布尔型
is_array()                — 检测变量是否是数组
is_object()               — 检测变量是否是一个对象
is_null()                 — 检测变量是否为 NULL
is_resource()             — 检测变量是否为资源类型 

有时,我们需要强制将某个变量当作某种类型来求值,就要进行类型强制转换:

(int) 或 (integer)  — 转换为整形
(bool) 或 (boolean) — 转换为布尔类型
(float) 或 (double) — 转换为浮点型
(string)            — 转换为字符串
(array)             — 转换为数组
(object)            — 转换为对象
(unset)             — 转换为 NULL

变量作用域

1.超全局变量

由 PHP 预定义的,且在任何脚本的任何作用域中始终可用的一种变量。超全局变量包括:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

其中 $GLOBALS 是一个包含了所有全局变量的关联数组,变量的名字就是数组的 key,变量的值就是数组的 value

2.全局变量

在函数外部创建的变量, for 语句 、while 语句、foreach 语句中创建的变量也属于全局变量,其作用域是从创建变量的语句开始到文件的末尾,但在函数内部不可见。需要注意的是:常量一旦被创建,将在全局中可见,同时在函数内部也是可见的。

3.局部变量

在函数内部创建的变量,其作用域是从创建变量的语句开始到函数末尾。需要注意的是:如果函数内部的变量与外部的全局变量名称相同时,内部变量会覆盖外部变量。另外,在函数内部创建的静态变量是无法在函数外部使用的。

requireinclude 不影响作用域,即如果这两个语句作用于函数内部,变量具有局部作用域;如果作用于函数外部,变量具有全局作用域。

用关键字 global 声明变量,可以用来手动指定一个在函数中定义或使用的变量具有全局作用域。

PHP 学习总结之变量相关推荐

  1. c程序语言设定定义域,4.22C语言学习日记:变量的定义域及编译预处理

    学习笔记: 变量的存储类型: 静态存储方式:在程序运行期间由系统分配固定存储空间:从程序开始执行到程序结束: 动态存储方式:根据需要进行动态的分配存储空间:从包含该变量定义的函数开始执行至函数执行结束 ...

  2. Python编程语言学习:判断变量是否为NONE或False的几种常见写法(if not用法教程)

    Python编程语言学习:判断变量是否为NONE或False的几种常见写法(if not用法教程) 目录 判断变量是否为NONE或False的几种常见写法(if not用法教程) 1.not用法 2. ...

  3. NodeJS学习:环境变量

    简介 环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数.会在程序运行时传递给应用程序. NodeJS 获取环境变量,是通过 glo ...

  4. VB.net:VB.net编程语言学习之操作符(变量/常量/数据类型/声明)逻辑控制语句(条件判断/循环语句)的简介、案例应用之详细攻略

    VB.net:VB.net编程语言学习之操作符(变量/常量/数据类型/声明)&逻辑控制语句(条件判断/循环语句)的简介.案例应用之详细攻略 目录 VB.net编程语言学习之操作符/变量/常量/ ...

  5. python 分类变量编码_深度学习编码分类变量的3种方法——AIU人工智能学院

    :数据科学.人工智能从业者的在线大学. 数据科学(Python/R/Julia) 作者 | CDA数据分析师 像Keras中的机器学习和深度学习模型一样,要求所有输入和输出变量均为数字. 这意味着,如 ...

  6. java基础学习 --- 第二节 变量、数据类型和运算符

    java基础学习 - 第二节 变量.数据类型和运算符 一.变量 1.变量就是会发生改变的数据,程序运行时,这些数据以变量的形式被保存到计算机的内存中.如图 2.使用变量的步骤:     声明变量 - ...

  7. Polyworks脚本开发学习笔记(五)-变量使用基本语法

    Polyworks脚本开发学习笔记(五)-变量使用基本语法 定义变量及赋值 定义各种类型的变量 定义变量时,只需要使用DECLARE 关键字即可定义,为了区别变量和脚本中的其它字符,建议都以小写v开头 ...

  8. (一)Flutter 学习之 Dart 变量和类型系统

    Flutter系列文章目录导读: (一)Flutter学习之Dart变量和类型系统 (二)Flutter学习之Dart展开操作符 和 Control Flow Collections (三)Flutt ...

  9. matlab中float类型的_【Python基础学习】2. 变量、基本数据类型及其转换

    知行校园汇 记录学习.分享干货.吐槽人生! 关注 相关说明 文章内容:变量.基本数据类型及其转换 作者博客:csdn.cxhit.com www.cxhit.com 1. 变量 1.1 变量规则 在P ...

  10. python整数类型进制表示_python2学习经验(一) 变量数据类型

    python2  基础教程 (学习经验总结) -------------------------基础片-------------------------- python2的数据类型 python2没有 ...

最新文章

  1. iptables配置管理
  2. 如何把使用到android res文件夹下面资源(R.xx.xx)的工程打包成jar文件,供其它项目使用...
  3. Linux jobs等前后台运行命令详解
  4. 如何访问MATLAB Builder for .NET Components
  5. numpy.tril详解
  6. 趣味Python入门(一):初识Python
  7. python怎么查询元素是否在列表中_python怎么判断某一元素是否在列表中
  8. python 条件语句且_python 条件语句
  9. LEDE独臂路由器无法上网踩坑
  10. 怎么改变鼠标图案HTML,怎么换鼠标指针的颜色和图案?
  11. python生成华氏度-摄氏度转换表
  12. unity材质球复制
  13. 在 iOS 微信浏览器中自动播放 HTML5 audio(音乐) 的正确方式
  14. 数学建模暑期集训24:机器学习与Classification Learner工具箱实操
  15. mba辅导班哪个机构好?全方位解答<title>mba辅导班</title>
  16. 如何设置select-option的多项起始默认值
  17. CGWallpapers网站不登录下载图片
  18. 数据结构_线段树 详解+模板
  19. 多边形向内收缩指定距离的实现
  20. Leetcode_577_员工奖金_SQL

热门文章

  1. C#中怎样在ToolStripMenuItem下再添加子级菜单
  2. C#中使用WebClient下载指定url的网络照片
  3. npm介绍以及常用命令
  4. 4、mybatis主配置文件之typeAliases
  5. android读取短信内容简书,Android 获取App信息
  6. rman删除7天前备份_RMAN备份
  7. 存clob为空的值_oracle clob 存储空间
  8. 2019春第十周作业
  9. VMware Skyline
  10. DAY19-Pillow制作验证码