PHP流程控制学习笔记
一:顺序结构
二:分支结构(条件结构,选择结构)
1.单路分支:
//条件:bool,true或false,> < == != & || ! isset()
if(条件)
执行下面一条语句
if(条件)
{
代码段:
代码段:
}
例子:
代码:
$a=10;
$b=5;
if($a > $b)
echo “$a是大于$b的”;
2.双路分支:
使用else语句
if(条件)
执行一条语句
else
执行一条语句
if(条件){
一条或多条代码
}else{
一条或多条代码
}
例子:
代码:
$a=10;
$b=20;
if($a > $b){
echo “$a大于$b<br>”;
}else{
echo “$a小于$b<br>”;
}
3.多路分支:
可以使用 if else if 和swich case
//这是一种互斥的关系
if(条件){
}elseif(条件){
}elseif(条件){
}elseif(条件){
}else{
}
switch(变量){
case 值:
代码:
break;
case 值1:
代码;
break;
default;
}
例子:
代码:
$hour=date(“H”);
if($hour > 6 && $hour < 9){
echo “早上好”;
}elseif($hour > 9 && $hour < 12){
echo “上午好”;
}elseif($hour > 12 && $hour < 14){
echo “中午好”;
}elseif($hour > 14 && $hour < 17){
echo “下午好”;
}elseif($hour > 17 && $hour < 19){
echo “傍晚好”;
}elseif($hour > 19 && $hour < 22){
echo “晚上好”;
}elseif($hour > 22 && $hour < 24){
echo “深夜好”;
}else{
echo “凌晨好”;
}
以上代码也可以写成
$hour=date(“H”); //因为有互斥关系,当执行到正确代码时,就不会执行下一段代码。
if($hour < 6){
echo “凌晨好”;
}
if($hour < 9){
echo “早上好”;
}elseif($hour < 12){
echo “上午好”;
}elseif($hour < 14){
echo “中午好”;
}elseif($hour < 17){
echo “下午好”;
}elseif($hour < 19){
echo “傍晚好”;
}elseif($hour < 22){
echo “晚上好”;
}elseif($hour < 24){
echo “深夜好”;
}else{
echo “您好”;
}
例子:
代码:
$week=date(“D”);
//switch(变量) 这里的变量只使用整型和字符串
//default 如果变量没有匹配的值,则执行default中的区域
//break 是退出switch语句,用来设置多个值匹配执行同一段代码
switch($week){
case “Mon”:
echo “星期一”;
break;
case “Tue”:
echo “星期二”;
break;
case “Wed”:
echo “星期三”;
break;
case “Thu”:
echo “星期四”;
break;
case “Fri”:
echo “星期五”;
break;
default:
echo “周末”;
}
如果是判断一段范围我们使用elseif
如果是单个值我们使用switch
4.嵌套分支:
if(){
if(){
}else{
if(){
}else{
}
}
}else{
if(){
}else{
switch(){
}
}
}
例子:
代码:
$sex=$_GET["sex"];
$age=$_GET["age"];
if($sex=”man”){
if($age >= 60){
echo “这位男士已经退休,他退休”.($age-60).”年了”;
}else{
echo “这位男士还在工作,还有”.(60-$age).”年退休”;
}
}else{
if($age >= 55){
echo “这位女士已经退休了,她退休”.($age-55).”年了”;
}else{
echo “这位女士还在工作,还有”.(55-$age).”年退休”;
}
}
//以上代码用了GET,所以访问的话是 ?sex=man&age=33
代码如下 | 复制代码 |
/* *引入一个目录的所有文件 *http://www.111cn.net */ function Bing_include_all_php( $folder ){ foreach( glob( "{$folder}/*.php" ) as $filename ) require_once $filename; } |
使用方法就是直接调用这个函数,第一个参数放上要引入的相对目录即可。
还有一种办法可以使用魔术方法__autoload来加载
代码如下 | 复制代码 |
set_include_path('aa' . PATH_SEPARATOR . get_include_path()); |
我们一般使用_autoload自动加载类如下:
代码如下 | 复制代码 |
<?php |
这里列举几个跳转方法:
网上最常见的一种方法:
代码如下 | 复制代码 |
<?php $url = $_GET['url']; |
把这段代码放到一个文件夹,命名为 比如go.php
然后go.php?url=需要跳转的网址,如果需要跳转淘宝客等产品链接,由于带有参数,需要修改下代码,用如下的代码
代码如下 | 复制代码 |
<?php $qstring = $_SERVER['QUERY_STRING']; $url = substr($qstring,4); header("Location: $url"); ?> |
另外还有很多js html的代码等等,就不介绍了,有需要的网上搜索一大把。
运算符是php中非常重的一个知识点了,现在我在学习php时对运算符用到的一些例子与知识点,下面整理了一些朋友写得非常的好内容与大家一起来学习吧。运算符号(操作符号)
按运算符号的功能分为
一:算术运算符 (+ - * / % ++ --)
% //有两个目的:整出运算;控制范围的运算(不要用小数,也不要用负数)
//会把两边的数转为整数后再进行整除
例子:
代码:
$year=?;
if(($year%4==0 && $year%100!=0) || $year%400==0){
echo "是闰年";
}else{
echo "不是闰年";
}
代码:
$a=109009;
echo $a%10;
++和--
例子:
代码:
$a=10;
$a++; //$a=$a+1 先用变量在自增1
++$a; //$a=$a+1 先用自增1再用变量
$a--; //$a=$a-1 先用变量再自减1
--$a; //$a=$a-1 先自减1再用变量
代码:
$a=10;
$b=$a++; //b=10,a=11
$c= --$b; //c=9,b=9
$d=$c++ + ++$c; //d=20,c=11
$e=$d-- - --$d; //e=2,d=18
二:字符串运算符(.)
三:赋值运算符(= += -= *= %= .=)
例子:
代码:
$a=10;
$a+=10; //$a=$a+10;
$a-=10; //$a=$a-10;
$a*=10; //$a=$a*10;
$a/=10; //$a=$a/10;
$a%=10; //$a=$a%10;
$a.="abc"; //$a=$a."abc";
四:比较运算符(> < >= <= == === !=或<> !==) //也叫条件运算符,关系运算符
比较后结果只有一种:boolean true false
==和=== //比较时不仅要求内容相同,也要求类型相同
例子:
代码:
$a=10;
if($a=100){
echo "正确";
}else{
echo "错误";
} //结果为正确,可是10是不会大于100的,因为=号是赋值,不是比较符号
代码:
$a=100;
if($a==100){
echo "正确";
}else{
echo "错误";
} //结果为正确,因为==意思为是否等于的意思。
代码:
$a=100;
if($a=="100"){
echo "正确";
}else{
echo "错误";
} //结果为正确,因为==比较的是内容,不要求类型
代码:
$a=100;
if($a==="100"){
echo "正确";
}else{
echo "错误";
} //结果为错误,因为===不仅比较内容,还要要求类型,"100"是字符类型
代码:
$a=100;
if($a===100){
echo "正确";
}else{
echo "错误";
} //结果为正确
!== // 这个是要求内容不相同,同时类型要不相同
五:逻辑运算符(&&或and ||或or !或not)
逻辑运算符只能操作bool型值,返回的也是bool型值
例子:
代码:
var_dump(true && true); //true
var_dump(true && false); //false
var_dump(true || false); //true
var_dump(!true); //false
var_dump(!false); //true
六:位运算符(& | ^ ~ << >> >>>)
& 和 | 既可以作为逻辑运算符号,又可以做为位运算符号
短路问题:&& 和|| 会发生短路
&& 在做运算时,如果前面的参数是false,则后面是否为true,整个表达式都是false,所以就不去执行后面的操作数
|| 在做运算时,如果前面的参数是true,则后面的是否为false,整个表达式都是true,所以就不去执行后面的操作数
& 或 | 在做运算时,两边都会被执行
七:其他运算符(? : `` @ => -> :: & $)
条件 ?成立执行这里 :不成立执行这里
例子:
代码:
$a=10;
$b=$a>5 ? $a : 5; //如果$a大于5就把$a赋值给$b,否则就是将5赋值给$b
echo $b; //结果是10
`` //执行系统命令的
例子: www.111cn.net
代码:
$ip=`ipconfig`;
echo "<pre>";
echo $ip;
echo "</pre>";
@ //屏蔽错误
例子:
代码:
@getType();
echo "mkmkmkmkmkmk<br>";
题目也就是做个和演示差不多一个意思的了,给的提示应该是很充分的,包括各种函数都有。
在PHP 检查表单是否提交的两种方法中提到了如何检测提交,利用这个方法我们就可以节省一个HTML文件了。
$_POST是一个数组(超全局变量),如果页面的请求方式是POST,在这个数组里就会存上相应的内容,
empty()函数以前有讲过,还有一个isset()的区别文章后面也介绍过
然后基本上就很易懂了
源码:
代码如下 | 复制代码 |
<!DOCTYPE html> |
关于
empty()函数参数是非或非零的值,则empty()返回FALSE:
"",0,"0",NULL,FALSE,array(),var $var都被认为是空,如果函数为空,则返回TRUE。
isset()参数存在,则返回TRUE,否则返回FALSE,如果使用isset()测试一个被设置成NULL的变量或者使用unset()释放了一个变量,则返回FALSE。
复习:NULL字节("")并不等同于PHP的NULL函数。
注:判断一个变量存在且不为空:!empty($var) - 推荐
相关文章
- 这篇文章主要介绍了PyTorch一小时掌握之迁移学习篇,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-08
- 我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
- 1、简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目...2014-05-31
- 当我们在星际中开地图和几家电脑作战的时候,电脑的几个玩家相当于结盟,一旦我们出兵进攻某一家电脑,其余的电脑会出兵救援。 那么如何让各家电脑知道自己的盟友被攻击了...2016-11-25
- 举一个简单的date例子 我将使用echo命令把内容输出到我们的客户端(浏览器)。我将使用下面的代码做为基础代码。 代码如下 复制代码 <!DOCTY...2016-11-25
- 这篇文章主要介绍了学习 Vue.js 遇到的那些坑,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下...2021-02-04
- 当下最流行的前端开发框架Bootstrap,可大大简化网站开发过程,从而深受广大开发者的喜欢,你如果也喜欢Bootstrap前端开发框架,不要错过这次旅行...2016-05-05
- 这绝对是一套值得分享和大家收藏的Bootstrap学习教程,完整的知识体系,系统的学习资料,帮助大家开启Bootstrap学习之旅,享受Bootstrap带给大家的奇妙乐趣...2016-05-14
- 这篇文章主要介绍了是如何进行机器学习的模型的训练,全文逻辑清晰,简单易懂,如果您正在学习机器学习那么可以参考下,说不定会有不一样的收货...2021-04-16
- 一篇Android学习笔记之多界面切换实例,希望对各位朋友有所帮助。 用过VB 、 VC#的朋友都知道,在VB或VC#里要进行窗口(界面)切换很容易 例如在VB、C#里: 有 Fom1、...2016-09-20
- 引用:意思是将原始对象在内存中的地址传递给目标对象,就相当于原始对象和目标对象指向的是同一个内存地址。此时,如果对目标对象或者原始对象进行修改,内存中的数据也会改...2016-11-25
- cURL是php中一个很强大的功能,可以模仿各种用户请求,如模仿用户登录,发送php cookie等等操作,下面我来整理一些相关的方法与各位同学看看 备注:使用curl_init函数,必须...2016-11-25
- 那些年学了ASP.NET后,才开始学习C#,说来也怪,怎么学了ASP.NET才来学习C#,其实没有什么的...2020-06-25
- CWidget是所有Widget的基类。CWidget是自包含组件,可以看出是MVC的简略版,CWidget相比Controller,既没有actions,也没有filters widget,英文意思为小工具,小挂件,在程序...2016-11-25
- Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具 nexpose安...2016-11-25
- PHP扩展开发不是所有开发者都会操作的一个东西,下面我来演示一个关于PHP扩展开发实现过程,各位同学有需要可进入参考。 我们先假设需要这样一个扩展,提供一个叫tao_s...2016-11-25
- 小编推荐的这篇文章介绍了Yii2学习笔记之汉化yii设置表单的描述,非常实用,有兴趣的同学快来看看吧。 一:汉化框架  框架汉化在这里设置,如果不生效,前台后...2017-07-06
- 星际里面有不少的任务关,也可以自己编辑地图,画面上有各种地形,建筑和部队,存在一个问题,初始化画面的流程很乱。待解决的问题:完成初始化画面的工作,同时尽量减少各种绘制...2016-11-25
- Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。从上述的定义中我们可以看到,Session实际上是一个...2016-11-25
- PHP4.0中共有超过30个新的数组相关函数。其中很多通用函数答应你检查给定数组中是否存在特定对象、对数组元素计数、增加或删除元素,或对元素排序。 假如你有很大的...2016-11-25