题(1)

题(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 ...

 

上一篇:003. 生产者与消费者 - AND型信号量


下一篇:从源码层面理解 ArrayList 扩容策略