题(1)
1、请输出下列的结果:
$a = false; echo $a; $b = true; echo $b;
答案:
(1)$a=false,使用echo输出时,什么也不输出。
(2)$b=true,使用echo输出时,输出1。
2、请输出下列结果:
$a = true; echo $a+1; $b = false; echo $b+1;
答案:
(1)true进行计算时,转化为1进行计算,所以第一个输出 2。
(2)false进行计算时,转化为0进行计算,所以第二个输出1。
3、请输出下列结果:
$a = 123; $b = '12abc'; echo $a+$b; $a = 123; $b = 'abc12'; echo $a+$b; $a = '0123a'; $b = 'abc12'; echo $a+$b;
答案:
字符串进行加法、减法、乘法、除法运算时,把字符串开始到非数字结束的部分作为数字计算。
(1)123+12=135
(2)123+0=123
(3)0123+0=123
4、请输出下列结果:
$a = array(2=>1,2,3); $b = array(2=>2,3,4,5,10=>6); var_dump($a+$b); var_dump(array_merge($a,$b));
答案:
(1)数组相加,同名的键的值,保留前面的。
array (size=5) 2 => int 1 3 => int 2 4 => int 3 5 => int 5 10 => int 6
(2)array_merge()函数,如果是数字索引,则会保留所有值,索引从0开始;如果不是数字索引,重复的键,后一个会覆盖前一个。
array (size=8) 0 => int 1 1 => int 2 2 => int 3 3 => int 2 4 => int 3 5 => int 4 6 => int 5 7 => int 6
5、考察empty()函数,请写出下列的结果:
var_dump(empty(0));//boolean true var_dump(empty('0'));//boolean true var_dump(empty(''));//boolean true var_dump(empty(' '));//boolean false var_dump(empty('0.0'));//boolean false var_dump(empty(0.0));//boolean true var_dump(empty(array()));//boolean true var_dump(empty(null));//boolean true var_dump(empty(false));//boolean true var_dump(empty($a));////boolean true
知识点:
empty() 判断一个变量是否被认为是空的。
它的值等同于 FALSE或者当一个变量并不存在时,返回true,否则返回false。
以下的变量会被认为是空的:
① "" (空字符串)
② 0 (作为整数的0)
③ 0.0 (作为浮点数的0)
④ "0" (作为字符串的0)
⑤ NULL
⑥ FALSE
⑦ array() (一个空数组)
⑧ $var; (一个声明了,但是没有值的变量)
⑨ 未声明的变量
6、考察is_null()函数,请写出下列的结果:
var_dump(is_null($a)); $b = 1; unset($b); var_dump(is_null($b)); $c = null; var_dump(is_null($c));
答案:
(1)当变量$a未定义时,有notice提示变量未定义,输出结果是true。
Notice: Undefined variable: a in ... boolean true
(2)当变量$b定义后被销毁时,有notice提示变量未定义,输出结果是true。
Notice: Undefined variable: b in ... boolean true
(3)$c=null,所以输出结果是:boolean true
7、关于isset()函数的考察,请输出下列结果:
$a; var_dump(isset($a)); $b = null; var_dump(isset($b)); var_dump(isset(null)); var_dump(isset(false)); var_dump(isset(PHP_VERSION)); var_dump(isset(0));
PHP isset() 函数,若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。
如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE。
答案:
(1)$a定义了但没有值,所以和未定义一样,返回 boolean false。
(2)$b=null,返回 boolean false。
(3)后边几个都报错:
Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in ... ...
8、请写出下列结果:
$a; $b = 2; var_dump($a + $b); //Notice: Undefined variable: a in //int 2 $c = null; $d = 2; var_dump($c + $d); //int 2 $e = array(); $f = 2; var_dump($e + $f); //Fatal error: Uncaught Error: Unsupported operand types in ...