日期:2014-05-17  浏览次数:20492 次

empty貌似跟isset有区别?看以下代码
<html>
<head>
</head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<?php 
//显示所有用户的信息(表格)
//查询数据
$conn=mysql_connect("localhost","root","5200") or die(mysql_error());

//设置mysql的编码

mysql_query("set names utf-8",$conn);
//选择数据库

mysql_select_db("manage",$conn) or die(mysql_error());

$pageSize=3;//每一页记录数
$rowCount=0;

if(!empty($_GET['pageNow'])){
$pageNow=1;
}
else{
$pageNow=$_GET['pageNow'];
}

$sql="select count(id) from emp";
$res1=mysql_query($sql);
if($row=mysql_fetch_row($res1)){
$rowCount=$row[0];//rowCount为数据记录数量
}
//计算多少页
$pageCount=ceil($rowCount/$pageSize);
$sql="select * from emp limit ".($pageNow-1)*$pageSize.",$pageSize";

$res2=mysql_query($sql,$conn);
//$sql="select * from emp";


echo "<h1>雇员信息表</h1>";
echo "<table width='700px' border='1'>";
echo "<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>slary</th><th>修改用户</th><th>删除用户</th></tr>";

while($row=mysql_fetch_assoc($res2)){
echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['grade']}</td>".
"<td>{$row['email']}</td><td>{$row['salary']}</td>".
"<td><a href=''>删除用户</a></td><td><a href=''>修改用户</a></td></tr>";
}
echo "</table>";
//打印页码的超链接
for($i=1;$i<=$pageCount;$i++)
{
echo "<a href='empMain.php?pageNow=$i'>$i</a>";
}

?>



</html>

------解决方案--------------------
親 手冊記得常翻

bool empty ( mixed $var )

如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。


bool isset ( mixed $var [, mixed $var [, $... ]] )

如果 var 存在则返回 TRUE,否则返回 FALSE。

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
------解决方案--------------------
PHP code

$str = 0;
var_dump(empty($str)); //true
var_dump(isset($str)); //true

------解决方案--------------------
!empty($x) = isset($x) && $x
empty($x) = !isset($x) || !$x