前言
简要记录了PHP的标识符,变量,常量,作用域,操作符及变量的几个常用函数。
标识符
PHP中变量的标识符由$开头,后接字母,数字,下划线。
变量的标识符区分大小写。如 $var 与 $VAR 是不同的。
函数的标识符不区分大小写! 对 FOO() 与 foo() 进行的是等价的调用。
一个变量的名称可以和函数的名称相同,但是不建议这么做。
变量
PHP变量有以下几种数据类型:
Integer (整数)
Float (浮点数,也叫Double)
String (字符串)
Boolean (布尔值)
Array (数组)
Object (对象) 用来保存类的实例
NULL (空)
resource (资源) 代表外部资源,如数据库链接
对变量类型的判断可以利用下文将要提到的函数。
类型转换类似于C语言,如:
$float_var = (float)$int_var
可变变量:这算是PHP中的特色了。一个例子就很容易明白是什么意思。
$var = 1;
$var_name = 'var';
echo $$var_name; //output: 1
单引号与双引号中字符串的不同:双引号支持插值操作,即用字符串内容来代替变量。
$var = 'happy';
echo "I have a $var day !"; //output: I have a happy day !
echo 'I have a $var day !'; //output: I have a $var day !
常量
在PHP中使用define函数来定义常量。
define('YEAR',2018);
使用常量时,不需要加$。
习惯使用全大写字母来定义常量,但这不是必须的。
一个例子:
define('YEAR',2019);
echo "Next year is YEAR"; //output : Next year is YEAR
echo 'Next year is YEAR'; //output : Next year is YEAR
echo "Next year is ".YEAR; //output : Next year is 2019
常量不支持双引号的插值操作!
作用域
作用域基本规则:
内置的超级全局变量可以在脚本的任何地方使用和可见。
一个脚本中声明的全局变量在整个脚本可见,但在函数内部不可见。
常量一旦被声明,将可以在全局可见。这里的全局并非全局变量的全局范围,常量也可以在函数内直接使用。
函数内部创建的(非静态)变量当函数终止时就不存在了。
函数内部创建的静态变量无法在函数外部可见,但是在函数多次执行过程始终保持该值。
假设想在函数内部使用全局变量:
在函数内部使用global关键字声明,如使用全局变量a:global a;。
通过全局变量数组进行访问,如使用全局变量a: $GLOBALS[‘a’]。
操作符
PHP中的大多数运算符和C语言中一致,下面主要记录一些特殊的操作符。
& 引用操作符:通常将一个变量的值赋给另一个变量时,先创建原变量的一个副本,然后将被赋值变量指向该副本。使用引用操作符可以避免该副本的产生,使得被赋值变量和原变量指向同一块内存。
$a = 0;
$b = &$a;
$b = 1; //$a 和 $b 都变为 1
可通过unset解除引用。
===与!==操作符:当操作符两侧为整数,浮点数,字符串或波尔值时,当两边操作数相等且具有同种数据类型时恒等操作符成立,反之不成立。当操作符两侧为数组时,当两边数组具有相同的键值对且顺序相同时恒等操作符成立,反之不成立。
0 == '0'; //true
0 === '0' //false
类型操作符: instanceof检查一个对象是否为特定类的实例。
变量几个常用函数
settype与gettype: gettype接受一个变量并返回一个包含变量类型的字符串。settype接受一个变量和一个数据类型用于将变量设置为指定的数据类型。
$a = 1;
gettype($a);
settype($a,'double');
isset,unset与empty:
isset函数接受一个变量并返回一个波尔值用于判断该变量是否存在。
unset用来销毁一个存在的变量。
empty检查一个变量是否存在以及它的值是否为非空和非零。
变量重解释
即调用函数将某变量转换为指定的数据类型。
int intval($var [, int $base]);
float floatval($var);
string strval($var);
如:
intval('42'); //42
展开 +
收起 -