PHP知识点回顾-PHP变量
一、isset()函数
isset()函数用于判断PHP变量是否定义(设置),PHP的变量要么是经过定义的,要么是未被定义的。当把一个值赋值给一个变量,无论这个值是true、false、0、空值或非空值,这个变量都是被设置的。当传递给isset()的变量是经过设置的时,isset()函数均会返回true,反之则返回false。
$a = true;
$b = false;
$c = '';
$d = 0;
var_dump(isset($a)); // true
var_dump(isset($b)); // true
var_dump(isset($c)); // true
var_dump(isset($d)); // true
二、unset()函数
将一个已经被定义(设置)的变量转为未定义的,需要使用到unset()函数,或者为这个变量赋值null。变量、标量、数组和对象都可以传递给unset()函数。
可以同时给unset()函数传递多个变量,一起销毁他们。
$b = null;
unset($c,$d); // 可同时传递多个参数(变量、数组等)
var_dump(isset($c)); // false
var_dump(isset($d)); // false
空的变量,是指其值可以转换成布尔值false的变量,包括:整型数0,双精度型数0.0,空字符串,字符串0,布尔值false,NULL以及没有元素的数组和没有属性的对象,除此之外,其他的变量都是非空的(包括字符串 “ ”,字符串0也均为非空的)。
var_dump(empty(0)); // true
var_dump(empty(0.0)); // true
var_dump(empty("")); // true
var_dump(empty("0")); // 字符串0 ,true
var_dump(empty(false)); // true
var_dump(empty([])); // true
var_dump(empty("00")); // false
var_dump(empty(" ")); // false
一个只包含一个空白变量的值要么可以转换为false,要么可以转换为true。空值和false之间的区别在于:只有对于变量来说才能有空值。常量以及由函数返回的值可以是false,但不能是空值。
三、== 和 = 的区别
比较一个变量和常量,把常量放在比较操作符的左侧会强制按常量的类型进行比较:
// 比较
$a = "12";
var_dump(12 == $a); // true
var_dump($a == 12); // true 不建议使用这种写法
// 把常量放在比较操作符的左侧会强制按常量的类型进行比较
$b = '0';
var_dump($b == 0); // true
$b == 'abc';
var_dump($b == 0); // true
var_dump(0 == $b); // true
当你将一个整型数和一个可能是整型数也可能是字符串的变量进行比较时,会导致一些问题。当$b 为0 时, 0 == $b 返回true,但是当$b是字符串‘abc’时,该比较表达式仍然可以返回true,因为,一个整型数(0)位于比较表达式的左侧时,PHP会在进行比较之前把右侧的操作数(字符串abc)先转换为一个整型数。为了避免此类问题的发生,可以使用等同操作符,0 === $b。
在一些知名的开源程序里面,我们经常会见到 if(true == xxx){…} 即是这种思想
把常量放在赋值操作符的左侧会触发一个解析操作:
// 赋值
var_dump($b = 12);
var_dump(12 = $b); // 提示解析错误,Parse error
四、为变量设定默认值
在编程时,经常会遇到为变量指定的默认值被来自表单的字段或环境变量的值覆盖的情况,在这种情况下,需要使用isset()来进行判断,如果不使用这个函数,那么变量的非默认值就不能是0或者其他能转换为false的值。
if (!isset($c)) {
$c = 'xxx';
}
$c = isset($c) ? $c : 'xxx';
// 对比以下赋值语句
// 如果 $c 是0或者false,$c 最终都会被赋值为'xxx',但是0或者false对于$c来说,也是一个有效的值。
$c = $c ? $c : 'xxx'
在检测数组是否经过设置时,需要使用array_key_exists()函数。
$car = array_key_exists('cars',$_REQUEST) ? $_REQUEST['cars'] : "default";
array_key_exists()和isset()函数的一个区别是:当数组中存在一个键对应的值为null时,array_key_exists()返回true,而isset()返回false。
- CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
- CSS最大值计算函数--max()函数的定义和使用
max()函数的作用是从一系列用逗号分割的参数中选取最大的一个,作为属性值,参数可以是直接数值,字面量、数学表达式、css函数等,支持嵌套。与min()函数的作
- 后台发布文章时自动保存草稿功能的实现
“正在系统后台编辑文章,顺手看了下群里的视频,关视频的时候不小心连网页一起关闭了,写了大半的文章说没就没了?”,相信很多人都遇到过这种场景,辛辛苦苦码了半天的字
- CSS获取属性值函数--attr()函数的定义和使用
attr()函数为CSS返回元素属性值函数一、attr()函数的语法:该函数接收一个单一参数:attribute-name,即属性名,attr()函数返回被选择
- 富文本编辑器CKEditor5接入指南
在后端制作CMS等需要用到富文本编辑器的时候,经常会陷入选择困难症,众所周知,目前市面上的富文本编辑器大概有数十种,比如百度的ueditor、TinyMCE、w
- WebStorm中如何配置SCSS
WebStorm是一款很优秀的用于前端开发的IDE,用于开发基于HTML、CSS、JS等的应用时非常应手,当然JetBrains旗下的其他IDE,如PHPSto
- CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
- CSS限定属性值函数--clamp()函数的语法和使用
clamp()的作用是将属性值限制在最大、最小值之间,当值介于最大最小值范围中时,则使用给定的首选值。一、clamp()函数的语法clamp(MIN, VAL,