变量
变量检测
- bool isset ( mixed $var [, mixed $… ] )— 检测变量是否设置
注意:一次可以检测多个变量,有一个变量未设置,则返回false; 如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
变量类型判断
- string gettype ( mixed $var ) — 获取变量的类型
返回值:
“boolean”
“integer”
“double”(由于历史原因,如果是 float 则返回“double”,而不是“float”)
“string”
“array”
“object”
“resource”
判断是否是指定类型的变量:is_array,is_bool,is_float(is_double),is_int(is_integer),is_null,is_string,is_object,is_resource
变量类型转换
最常见的是字符串与数字的转换,或是数字/字符串->布尔值的转换。
$a='12avaf1422';
$b=1;
echo $a+$b;//13
$num1=3.14;
$num2=(int)$num1;
var_dump($num1);
echo "<br/>";
var_dump($num2);//int(3)
- empty() — 检查一个变量是否为空 当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.
以下的东西被认为是空的:
“” (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
“0” (作为字符串的0)
NULL(null值)
FALSE(布尔值false)
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
传值赋值与引用赋值
$num1=1;
$num2=2;
echo $num2;//2
$num2=&$num1;
echo $num2;//1
引用赋值结合变量销毁unset():
$num1=0;
$num2=&$num1;
unset($num1);
var_dump($num2,$num1);//int(0) NULL
注意:$num1销毁变量后,$num2值依然存在
动态变量名
$mk='孟珂';
$$mk='裴丹圣';
echo $mk,'love',$$mk;
运算符
算数运算符
整型太大的话,会自动转换成浮点型:
var_dump(100000000000000000000000);//float(1.0E+23)
取模运算时,结果的正负仅仅取决于被除数的正负:
$a=-10;//换成10试试
$b=3;//换成-3试试
echo $a%$b;
比较运算符
三元运算符
(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
$test=1;
$re=$test??'不存在';//PHP7+写法
$re=$test?:'不存在';// PHP 5.3+普通写法
echo $re,PHP_EOL;
echo 'hi';
逻辑运算符
x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true
echo( (10 xor 1) ?:'假');//假
递增递减运算符
字符串运算符
.就一个点,我只说一次!
赋值运算符
控制结构
Switch case
注意:必须要使用 break 来阻止代码跳入下一个 case 中继续执行!
do while
do
{
要执行的代码;
}
while (条件);
for
for (初始值; 条件; 增量)
{
要执行的代码;
}
注意:
上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
break 和continue 区别
break 在循环中作用是结束一个循环
continue立即结束本次循环,继续执行下一次循环
函数
PHP 的真正威力源自于它的函数!
函数是一段封装好的代码,随时可调用。
定义格式
命名规则和变量命名一样,但是函数不区分大小写;
函数的名称应该提示出它的功能。