1.PHP中变量的类型
$age =12;
等同于如下
如果新建的是一个null类型的数据呢?
$age = null;
2.变量的检测isset()
技术细节:2.1 isset函数可以是多个参数,同时检测变量存在与否,多个参数中有一个不存在的,都返回false
2.2一旦变量unset后,就等同于把变量扔出花名册,所以是false
2.3 更多isset情况见
https://www.cnblogs.com/html55/p/10515585.html
2.4 “同时要注意的是 null 字符(" ")并不等同于 PHP 的 NULL 常量。” 文档上的这句话,不太理解是啥意思。。。网上查了下,是这样说的:如下:
NULL 字符是变量为空 $t = ''; 变量有值,不过是空,isset()是TRUE
NULL 常量是 $t = null; 变量没有值,连空都不是,isset()是FALSE
2.5 isset还可以检测数组中的某项
1 <?php 2 $a = array ( 3 'test' => 1, 4 'hello' => NULL, 5 'pie' => array('a' => 'apple') 6 ); 7 8 var_dump(isset($a['test'])); // TRUE 9 var_dump(isset($a['foo'])); // FALSE ,不存在或为null 10 var_dump(isset($a['hello'])); // FALSE ,不存在或为null 11 12 // 更深层次检测 13 var_dump(isset($a['pie']['a'])); // TRUE 14 var_dump(isset($a['pie']['b'])); // FALSE,不存在或为null 15 var_dump(isset($a['cake']['a']['b'])); // FALSE,不存在或为null 16 17 ?>
注意
1 <?php 2 $a = array ( 3 'test' => 1, 4 'hello' => NULL, 5 'pie' => array('a' => 'apple') 6 ); 7 //array_key_exists 检测数组是否存在某个键值 8 var_dump(array_key_exists('hello', $a)); // TRUE, 9 //注意$a["hello"]值为null,array_key_exists结果为true,而isset结果为false 10 var_dump(array_key_exists('kkk', $a)); // false 11 12 ?>
3.变量类型的检测gettype,或is_* 系列
注意:不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。使用 is_* 函数代替。
4.变量打印
字符串、数字用echo
echo true; //显示1
echo false;//什么都不显示
数组用print_r
var_dump();更详细
5.变量类型的转化
php中变量类型是可以转换的,比较方便,最常见的是数字和字符串相互转,数字、字符串和布尔值相互转。
5.1.字符串转数字
1 <?php 2 3 /** 4 1.字符串转化为数字 5 字符串参与运算的时候,自动转化为数字,那转化规则是?——从左到右截取,直到碰到不合法的数字时停止(注意php认为,小数点是合法的,但是%百分号是不合法的),截取出来的部分转成数字 6 如: 7 'abcd3322' 转成0 8 '3322abc' 转成3322 9 '33.22ddd543' 转成33.22 10 '565%da' 转成565 11 */ 12 13 $a = '33%ddd543'; //变量为字符串 14 var_dump($a+3);//int(36),php中变量自动转化 15 16 ?>
5.2.数字转字符串
参与字符串拼接时,自动转化,比如123转为'123'
5.3到布尔型的转化
以下值都被当成布尔值的假:'',0,'0',0.0,false,null,array() 就是,空字符串,字符串0,数字0,数字零点零,false,null,空数组
<?php //如果在C和java中,空字符串和false是不能进行比较的 //但是php中可以 if ('' == false) { # code... } ?>
6.赋值分为传值赋值和引用赋值
细节如下:
https://www.cnblogs.com/html55/p/10577366.html
7.动态变量名
就是一个变量的值做另一个变量的变量名,留个坑,主要应用在哪里?
$$$abc
8.算术运算符
得到