php中foreach和list循环语句实例
最近买了本php和mysql web开发,看到数组循环语句。值得自己关注下,特此留点字迹,以便以后读阅。
一般foreach用的比较多
代码如下 | 复制代码 |
<?php |
还有个更高级和常见的方法
代码如下 | 复制代码 |
<?php |
以前还真没怎么关注下,今天自己动手,还不错,又了解新的东西了,还是自己太菜了,哎
list()函数可以用来一个数组分解成一系列的值,允许为新变量命名。不懂list的
http://www.111cn.net/phper/24/032a7c95555c423729b071aef4afd3c4.htm
两段代码输出是一样。
需要注意的是,当使用each()函数时候,数组将记录当前元素。如果希望在相同的脚本中使用两次该数组。就需要使用reset()降当前元素重新设置到数组开始处。
代码如下 | 复制代码 |
<?php |
这样就可以依然使用数组$price咯。
恒等计算符,和比较运算符号“==”的区别是 “==”不会检查条件式的表达式的类型,恒等计算符会同时检查表达式的值与类型。这主要和php是无类型语言有关,比如 NULL,FALSE,array(),”",0,”0″这几个值如果用==他们是相等的,但是你如果判断出某个值真正的返回值呢,就可以用 ===
$a = 0;
$b = FALSE;
$a === FALSE 不成立,但 $b === FALSE成立,如果是==, $a == FALSE 和 $b == FALSE都成立
===运算符还是很有用的,php有些内置函数成功会返回某个值,失败会返回false,假如成功了但返回的是”"或者0之类的空值你怎么判断成功或者失败呢?这是就可以用 === ,它可以区分变量类型。
参考:
比较运算符
例子 | 名称 | 结果 |
---|---|---|
$a == $b | 等于 | TRUE,如果 $a 等于 $b。 |
$a === $b | 全等 | TRUE,如果 $a 等于 $b,并且它们的类型也相同。(PHP 4 引进) |
$a != $b | 不等 | TRUE,如果 $a 不等于 $b。 |
$a <> $b | 不等 | TRUE,如果 $a 不等于 $b。 |
$a !== $b | 非全等 | TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 引进) |
$a < $b | 小与 | TRUE,如果 $a 严格小于 $b。 |
$a > $b | 大于 | TRUE,如果 $a 严格 $b。 |
$a <= $b | 小于等于 | TRUE,如果 $a 小于或者等于 $b。 |
$a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b。 |
如果比较一个整数和字符串,则字符串会被转换为整数。如果比较两个数字字符串,则作为整数比较。此规则也适用于 switch语句。
代码如下 | 复制代码 |
<?php var_dump(0 == "a"); // 0 == 0 -> true var_dump("1" == "01"); // 1 == 1 -> true var_dump("1" == "1e0"); // 1 == 1 -> true switch ("a") { case 0: echo "0"; break; case "a": // never reached because "a" is already matched with 0 echo "a"; break; } ?> |
-自定义变量
a.不需明示数据类型
b.加'$'
c.以下划线或字母开头
d.以有意义的单词
-全等
a.===
b.判断大小及类型
-数组
创建数组方法
a.array("key"=>"value")
b.array[]=value;
c.explode(separator,string);
常用函数
a.count //统计数组条数
b.is_array //判断是否为数组
遍历数组
Foreach($arr as $key=>$value)
说明: 指针跳转, 自动循环, 依次赋值
-流程控制符
a. break //结束一层循环
break n //结束n层循环
b. continue //结束本次循环
c. return //返回,结束当前脚本运行
d. exit //结束脚本运行
e. return 与 exit的区别:见图
图片:图2-1.JPG
3.函数
-date("Y-m-d G:i:s")
a.Y 表示4位数字完整表示的年份
b.m 数字表示的月份,有前导零
c.d 月份中的第几天,有前导零的2位数字
d.G 小时,24小时格式,没有前导零
e. i 有前导零的分钟数
f. s 有前导零的秒数
注意:假如你显示的时间跟电脑显示时间不一样,也就是相差8小时,可在php.ini里
面将date.timezone = "PRC" //PRC代表中华人民共和
-time() //返回当前的 Unix 时间戳,也就是一串数字
例: $nextWeek=time()+(7*24*60*60);//7天,24小时,60分钟,60秒
echo $nextWeek."<br>";
echo 'now: '.date("Y-m-d")."n";
echo 'Next Week: '.date("Y-m-d",$nextWeek);
date(格式字符,时间戳)
1. 将给定的时间戳以给定的格式输出来
2. 如果省略时间戳,例如前面,则视为当前时间
-自定义函数
a.格式:function 函数名(){}
b.使用与功能相关的名字
function_exists //判断函数
is_array //判断数组
-命名习惯
a.使用良好命名 (必须地,其余仅供参考)
b.函数单词开头大小写
c.常量大写
d. 变量小写
提醒:PHP是区别大小写的
4.mysql
-Mysql(小型关系型数据库管理系统)
a.体积小
b.速度快
c.成本低
d.开源
MYSQL默认使用的是3306端口
-存储引擎(存储表数据的类型)
a.MyISAM:较高的插入、查询速度,但不支持事务;默认。
b.InnoDB:支持事务
-phpMyAdmin(Web方式访问Mysql)
-类型小解
精度:指数值数据中所存储的十进制数据的总位数。
长度:指存储数据所使用的字节数
int
1.整数型
2.精度10
3.数值范围(-2147483648~2147483648)
4.长度4
注意:
int(n)
1.指定整数值的显示宽度
2.实际的宽度小于指定列宽度时,从左侧填满宽度
3.不改变长度,不改变数值范围
字符型
char/varchar(n) //n表示长度
当列中字符数据值长度一致时,使用char,长度不同时,使用varchar可以节省存储空间
-基本sql语句
a.SELECT 字段 FROM 表 WHERE 条件
b.INSERT INTO 表(字段)VALUES(值)
c.UPDATE 表 SET 更新内容 WHERE 条件
d.DELETE FROM 表 WHERE 条件
多练习是关键
查询语句之后:
1.分组:group by
2.排序:order by ASC/DESC
3.限制:limit O,N
对于limit来说,O为偏移量,跟数组一样是从0开始算起,N为数量
如:limit 1,5 相当于从第二条开始往后5条记录
5.php操作mysql
-基本步骤:
mysql_connect("hostname","username","password") //连接MYSQL
mysql_select_db("database_name"); //打开数据库
mysql_query($sql); //执行sql语句
mysql_fetch_array($result) //取值
mysql_query:
1.sql=select 时,执行成功返回一个资源标识符,执行错误返回FALSE
注意:查询成功不代表一定有结果,只说明语句正确
2.sql=insert/update时,执行成功返回TRUE,执行错误返回FALSE
mysql_fetch_array()
1.取得query(sql)的结果集中的一行保存到数组
2.依次调用将返回结果集中的下一行
3.可以通过字段名作索引
-中文编码
避免乱码:
1.建立数据库时,要选择相应的字符集。全国通用:GBK/gb2312;世界通用:UTF-8(建议选用)。
2.连接mysql时,加入连接字符集 "set names GBK";
注意:如果你set names UTF8,那么就应该设置页面编码为UTF-8
代码如下 | 复制代码 |
///////////////封装Php连接Mysql函数//////////////// function PHPConnectMysql($hostname,$username,$password,$database,$charaset){ mysql_connect($hostname,$username,$password); mysql_select_db($database); mysql_query("set names $charaset"); } |
小结:平时多积累,将特定功能函数化,以便重复利用
一个超简单的初学者用的php教程之表单提交实例有需要的朋友参考一下。代码如下 | 复制代码 |
<form action="someform.php" method="post"> |
maxlength是与密码文本框关联的属性,它限制用户输入密码的最大长度为10个字符。
age列表框是列表菜单,它的命名属性下都有自己的值供选择。selected是一个特定的属性选择元素,如果某个option附加有该属性,在显示时就把该项列为第一项显示。
intro文本框中的内容,按照rows和cols显示文字、行和列宽。
fave_sport是一组单选按钮(radio),我们要按组命名元素名称,比如这一组单选按钮都叫做fave_sport,用户只可选择一个,发送脚本端也只存在一个值。
和单选项一样,所有多选项成员也须有同名的属性,而属性名称需要添加括号[],这样就把多选项的值以数组形式发送给PHP,languages就是这种形式。
checked标签是指单选项和多选项中的某个值,默认已经被选择。
代码如下 | 复制代码 |
//通过判断按钮的变量名是否在$_POST中定义,如果有表示该表单已提交 |
bool in_array ( mixed $needle , array $haystack [, bool $strict ] )
在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
Note:
如果 needle 是字符串,则比较是区分大小写的。
Note:
在 PHP 版本 4.2.0 之前,needle 不允许是一个数组。
注释:如果 value 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。
Example #1 in_array() 例子
代码如下 | 复制代码 |
<?php $os = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $os)) { echo "Got Irix"; } if (in_array("mac", $os)) { echo "Got mac"; } ?> |
第二个条件失败,因为 in_array() 是区分大小写的,所以以上程序显示为:
Got Irix
Example #2 in_array() 严格类型检查例子
代码如下 | 复制代码 |
<?php if (in_array('12.4', $a, true)) { |
注:in_array函数返回的是0,1
当转换为 boolean 时,以下值被认为是 FALSE:
布尔值 FALSE
整型值 0(零)
浮点型值 0.0(零)
空白字符串和字符串 "0"
没有成员变量的数组
没有单元的对象
特殊类型NULL(包括尚未设定的变量)
所有其它值都被认为是 TRUE(包括任何资源)。
警告
-1 和其它非零值(不论正负)一样,被认为是 TRUE
相关文章
mysql中获取一天、一周、一月时间数据的各种sql语句写法
创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
下面小编就为大家带来一篇JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20- 这篇文章主要介绍了Java8处理List的双层循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
jquery中常用的SET和GET$(”#msg”).html循环介绍
复制代码 代码如下: $(”#msg”).html(); //返回id为msg的元素节点的html内容。 $(”#msg”).html(”new content“); //将“new content” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content $(”...2013-10-13浅谈Java8 的foreach跳出循环break/return
这篇文章主要介绍了Java8 的foreach跳出循环break/return,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-28- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- 这篇文章主要介绍了C#条件语句、循环语句(if、while)的用法,学习c#的朋友可以参考下...2020-06-25
mybatis-plus mapper中foreach循环操作代码详解(新增或修改)
这篇文章主要介绍了mybatis-plus mapper中foreach循环操作代码详解(新增或修改),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-17- 这篇文章主要介绍了C#中的基本循环:while循环、for循环和foreach循环,大家都知道循环结构可以简化程序编码,更好地实现理想的效果,并结合案例给大家讲解,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
- 这篇文章主要介绍了解决vue-router路由拦截造成死循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-05
- 这篇文章主要介绍了c# 循环语句的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-06-25
Mysql 原生语句中save or update 的写法汇总
背景  在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hibernate,它自带saverOrUpdate方法,用起来很方便,但如使用原生sql语句呢?  ...2015-03-15- 这篇文章主要给大家介绍了关于如何利用JavaScript编写更好的条件语句的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-08-10
- 这篇文章主要介绍了Nodejs 数组的队列以及forEach的应用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-25
- 这篇文章主要给大家介绍了关于JavaScript循环遍历的24个方法,文中对每种方法都给出了详细的实例代码,方便大家理解学习,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-15
- 下面小编就为大家带来一篇jquery if条件语句的写法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
- 这篇文章主要介绍了Java8之Stream流代替For循环操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
- 这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04