关于php基础类型的一些探讨
2017-07-06 16:20
190 查看
首先来看这些习题:
一、基础题
1. 写出如下程序的输出结果
<?
$str1 = null;
$str2 = false;
echo $str1==$str2 ? '相等' : '不相等';
$str3 = '';
$str4 = 0;
echo $str3==$str4 ? '相等' : '不相等';
$str5 = 0;
$str6 = '0';
echo $str5===$str6 ? '相等' : '不相等';
?>
答案: 相等 相等 不想等
分析:在php中基础类型像 null,false,'',0,""等被php处理后他们的值是相等的,如果empty函数判断这些 也都是true 第三个由于是对类型也进行了判断 所以不相等
2. 写出如下程序的输出结果
<?
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = '';
$a5 = '0';
$a6 = 'null';
$a7 = array();
$a8 = array(array());
echo empty($a1) ? 'true' : 'false';
echo empty($a2) ? 'true' : 'false';
echo empty($a3) ? 'true' : 'false';
echo empty($a4) ? 'true' : 'false';
echo empty($a5) ? 'true' : 'false';
echo empty($a6) ? 'true' : 'false';
echo empty($a7) ? 'true' : 'false';
echo empty($a8) ? 'true' : 'false';
?>
答案: 只有 6 8 返回false 其他都是true
分析:在php中基础类型像 null,false,'',0,"",'0'等被php处理后他们的值是相等的,如果empty函数判断这些 也都是true 6由于是一个null字符串 8是一个含有一个子元素的数组
3. 写出如下程序的输出结果
<?
$test = 'aaaaaa';
$abc = & $test;
unset($test);
echo $abc;
?>
答案: aaaaaa
分析:在php中&地址符号引用 其实是引用的对象副本 当unset之后 并没有删除副本 所以仍然是aaaaaa
4. 写出如下程序的输出结果
<?
$count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
?>
答案:501
分析:首先思考全局变量 对全局变量操作不影响局部变量 所以第一次输出是5 当++之后 数值变为6 函数内部是静态局部变量 静态变量由于常驻内存 所以用完不会被释放 所以两次调用结果为 0 1
一、基础题
1. 写出如下程序的输出结果
<?
$str1 = null;
$str2 = false;
echo $str1==$str2 ? '相等' : '不相等';
$str3 = '';
$str4 = 0;
echo $str3==$str4 ? '相等' : '不相等';
$str5 = 0;
$str6 = '0';
echo $str5===$str6 ? '相等' : '不相等';
?>
答案: 相等 相等 不想等
分析:在php中基础类型像 null,false,'',0,""等被php处理后他们的值是相等的,如果empty函数判断这些 也都是true 第三个由于是对类型也进行了判断 所以不相等
2. 写出如下程序的输出结果
<?
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = '';
$a5 = '0';
$a6 = 'null';
$a7 = array();
$a8 = array(array());
echo empty($a1) ? 'true' : 'false';
echo empty($a2) ? 'true' : 'false';
echo empty($a3) ? 'true' : 'false';
echo empty($a4) ? 'true' : 'false';
echo empty($a5) ? 'true' : 'false';
echo empty($a6) ? 'true' : 'false';
echo empty($a7) ? 'true' : 'false';
echo empty($a8) ? 'true' : 'false';
?>
答案: 只有 6 8 返回false 其他都是true
分析:在php中基础类型像 null,false,'',0,"",'0'等被php处理后他们的值是相等的,如果empty函数判断这些 也都是true 6由于是一个null字符串 8是一个含有一个子元素的数组
3. 写出如下程序的输出结果
<?
$test = 'aaaaaa';
$abc = & $test;
unset($test);
echo $abc;
?>
答案: aaaaaa
分析:在php中&地址符号引用 其实是引用的对象副本 当unset之后 并没有删除副本 所以仍然是aaaaaa
4. 写出如下程序的输出结果
<?
$count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
?>
答案:501
分析:首先思考全局变量 对全局变量操作不影响局部变量 所以第一次输出是5 当++之后 数值变为6 函数内部是静态局部变量 静态变量由于常驻内存 所以用完不会被释放 所以两次调用结果为 0 1
相关文章推荐
- PHP开发基础(1):PHP 点运算符(.)与数据类型转换的深入探讨
- (一)关于socket编程的一些基础数据类型
- 【js基础】javascript中关于数据类型一些知识和类型判断
- 关于Hibernate的一些基础问题
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 关于回滚段与事务的一些探讨
- 关于Google Maps的地图类型(MapType)的一些心得
- 关于C++的一些细节[五:函数-基础]
- 关于PHP中操作MySQL数据库的一些要注意的问题
- 一些关于PHP的知识
- 关于安全编写代码的一些注意事项[参照msdn],这些在编程基础中都已经相当重要了!
- 基础中的基础,关于网页DOCTYPE(文档类型)的定义
- 关于freelist的一些深入的探讨
- 关于PHP操作文件的一些FAQ总结
- PHP扩展2:config.m4中的一些基础的宏定义和需要注意的地点
- 一些关于Globus的基础知识
- 关于C++的一些细节[三:复合类型]
- 关于PHP操作文件的一些FAQ总结
- 关于ADO对象的筛选,只是一些基础,至少省去了重新构造Where 条件的麻烦~!
- 关于PHP和ROR的一些思考