黑马程序员技术交流社区

标题: 新手入门if判断详解 [打印本页]

作者: 天宝    时间: 2016-9-16 23:21
标题: 新手入门if判断详解
※※※※※※※※※※※※※※※※※※※※※※※※
一个程序不可能只是一成不变的执行下去,因此,php也有很多控制程序流程的函数/方法
※※※※※※※※※※※※※※※※※※※※※※※※
********if判断详解********
【if基本语法】
从一段代码开始:(PS:关于empty函数和变量,请参见《php基础教程2.php变量》)
$name=$_GET['name'];
if (empty($name)) {
echo 'name为空';
} else {
echo 'name不为空';
}
这个过程判断了$name是否为空并输出相应的内容。这也是if … else的基本形式:
if (条件) {
//满足条件(为TRUE)做的动作
} else {
//不满足条件(为FALSE)做的动作
}
有时我们需要进行多次判断,例如:
$name=$_GET['name'];
if (empty($name)) {
echo 'name为空';
} else {
if ($name=='a') {
echo 'name是a';
} else {
echo 'name不是a';
}
}
这样写虽然没错,不过稍麻烦了些,可以简写成这样:
$name=$_GET['name'];
if (empty($name)) {
echo 'name为空';
} elseif ($name=='a') { //注意这里把else改成了elseif
echo 'name是a';
} else {
echo 'name不是a';
}
【同时判断多个条件的方法】
有的时候,我们需要判断几个条件:
$name=$_GET['name'];
$nickname=$_GET['nnickname'];
if (!empty($name)) { //!的作用下面会讲
if (!empty($nickname)) {
echo 'name和nickname都不为空';
}
}
这段代码可以简写成:
$name=$_GET['name'];
$nickname=$_GET['nnickname'];
if (!empty($name) && !empty($nickname)) {
echo 'name和nickname都不为空';
}注意!如果第一个判断已经为FALSE,那么php不会进行第二个(包括第二个以后的)判断,例如:
function a () {
echo 'a';
return FALSE;
}
function b () {
echo 'b';
return TRUE;
}
if (a() && b()) {
echo '执行了a和b';
}
运行后,输出结果是a,不会看到b和“执行了a和b”
满足任意之一,用||,例如:
$name=$_GET['name'];
$nickname=$_GET['nnickname'];
if (empty($name) || empty($nickname)) {
echo 'name或nickname为空';
}
和&&类似,如果第一个判断已经为TRUE,那么php不会进行第二个(包括第二个以后的)判断,例如:
function a () {
echo 'a';
return TRUE;
}
function b () {
echo 'b';
return TRUE;
}
if (a() && b()) {
echo '执行完了';
}
运行后,输出结果是a和“执行完了”,没有b
有的时候,我们要进行比较复杂的判断,例如我需要程序满足下面两个条件任意一个就执行相应代码:
1.name非空
2.nickname非空且nickname长度在5以内
那么,我可以这样写
$name=$_GET['name'];
$nickname=$_GET['nnickname'];
if (!empty($name) || (!empty($nickname) && strlen($nickname)<5)) { //注意括号
echo '我是要执行的代码';
}
和数学上的四则运算不同。php并非优先执行括号里的代码,而是把括号里的代码看做一个整体




作者: 花开    时间: 2016-9-17 23:52
看懂了  加油  谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2