php迭代
A. php的循环语句是什么
在我们编写代码时,经常需要反复运行同一代码块。
我们可以使用循环来执行这样的任务,而不是在脚本中添加若干几乎相等的代码行。
在 PHP 中,有以下循环语句:
while- 只要指定条件为真,则循环代码块
do...while- 先执行一次代码块,然后只要指定条件为真则重复循环
for- 循环代码块指定次数
foreach- 遍历数组中的每个元素并循环代码块
PHP while 循环
只要指定的条件为真,while 循环就会执行代码块。
语法
while (条件为真) {
要执行的代码;
}
下例首先把变量 $x 设置为 1($x=1)。然后执行 while 循环,只要 $x 小于或等于 5。循环每运行一次,$x 将递增 1:
实例
<?php
$x=1;
while($x<=5) {
echo "这个数字是:$x <br>";
$x++;
}
?>
PHP do...while 循环
do...while 循环首先会执行一次代码块,然后检查条件,如果指定条件为真,则重复循环。
语法
do {
要执行的代码;
} while (条件为真);
下面的例子首先把变量 $x 设置为 1($x=1)。然后,do while 循环输出一段字符串,然后对变量 $x 递增 1。随后对条件进行检查($x 是否小于或等于 5)。只要 $x 小于或等于 5,循环将会继续运行:
实例
<?php
$x=1;
do {
echo "这个数字是:$x <br>";
$x++;
} while ($x<=5);
?>
请注意,do while 循环只在执行循环内的语句之后才对条件进行测试。这意味着 do while 循环至少会执行一次语句,即使条件测试在第一次就失败了。
下面的例子把 $x 设置为 6,然后运行循环,随后对条件进行检查:
<?php
$x=6;
do {
echo "这个数字是:$x <br>";
$x++;
} while ($x<=5);
?>
PHP for 循环
如果您已经提前确定脚本运行的次数,可以使用 for 循环。
语法
for (init counter; test counter; increment counter) {
code to be executed;
}
参数:
init counter:初始化循环计数器的值
test counter:: 评估每个循环迭代。如果值为 TRUE,继续循环。如果它的值为 FALSE,循环结束。
increment counter:增加循环计数器的值
下面的例子显示了从 0 到 10 的数字:
实例
<?php
for ($x=0; $x<=10; $x++) {
echo "数字是:$x <br>";
}
?>
PHP foreach 循环
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
语法
foreach ($array as $value) {
code to be executed;
}
每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
下面的例子演示的循环将输出给定数组($colors)的值:
实例
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
B. php 检测源代码是否被改动过和是否项目中有增加或删除的文件的实现思路
如果想自己做, hashtable是一定的
建一个hashtable, 储存当前内容, 同时该hashtable的id也同样可以用于作为文件功能等记录的id之用, 然后无论是windows还是linux都可以cron的,去做一个php文件去匹配吧, 文件修改时间无所谓的, md5(file)更有意义
如果单纯使用php, 遍历目录是必须的, 无论哪个os都提供文件动作的监控能力,但是这不在php的工作范围内,所以无法实现所谓的监控,你可以看看同步类软件,无论哪个操作系统都是直接去os的基层拿现成的东西来用,不用特地耗费资源去自己不断遍历目录监控的,
svn/cvs是主动提交改动的, 而所谓监控,那就是被动形式了,只有在改动时才有动作的叫监控,
你要php实现源码监控,一句话,不可能,只能做递归/迭代, 用hashtable处理并不断操作hashdb
ps:文件功能你们都不写进注释吗,注释本来就有这种功能, 比如phpdoc-_
C. php迭代器iterator怎么用
使用foreach 与使用迭代器,并不冲突
迭代器可以使用在:
1、使用返回迭代器的包或库时(如PHP5中的SPL迭代器)
2、无法在一次的调用获取容器的所有元素时
3、要处理数量巨大的无素时(数据库中的表以GB计的数据)
迭代器还可以用来构造一些数据结构。
你可以去后盾人平台看看,里面的东西不错
D. foreach和迭代器的区别 php
迭代器是一种更高级的工具。foreach是简单的循环语法。虽然功能上看起来相似。但迭代器是工具,这是二者性质上的不同,所以迭代器有更丰富的功能特性,还可以自定义具体的实现。特别是在内存占用上,迭代器是按需读取数据,foreach是一次性载入数据。PHP里面PDO,SimpleXML里面都有迭代器的具体实现,更完整的全部在SPL扩展部分。
E. php如何按数组键值排序
$arr=[
array(
'name'=>'小坏龙',
'age'=>28
),
array(
'name'=>'小坏龙2',
'age'=>14
),
array(
'name'=>'小坏龙3',
'age'=>59
),
array(
'name'=>'小坏龙4',
'age'=>23
),
array(
'name'=>'小坏龙5',
'age'=>23
),
array(
'name'=>'小坏龙6',
'age'=>21
),
];
array_multisort(array_column($arr,'age'),SORT_DESC,$arr);
print_r($arr);
其中 array_column(数组,数组中的某个键值) 从多维数组中取出某个键值的一列 返回一个一维数组;
array_multisort(数组(一维数组),排序方式(SOTR_ASC,SOTR_DESC),其他数组(可以是二维的)
F. 想问下thinkphp3.2 与 5.0 效率上会相差很远吗
框架版本的迭代,是为了迎合底层技术迭代和功能BUG的完善。而TP5.0的出现是为了迎合PHP7.0,PHP7.0的版本语言和PHP5.x版本具有明显的改动,现有TP3.x框架已经无法支持PHP7.0,因此才有了TP5.0。
而TP5.0和3.2版本的区别比较,只能是后者已经完善,前者刚刚研发适用,存在的问题会直接影响项目开发。因此,建议用TP3.2开发项目,而TP5.0用于后续学习。
G. php是什么
PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。
PHP语法学习了C语言,吸纳java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
语言特点
PHP是一个受众大并且拥有众多开发者的开源软件项目,Linux + Nginx + Mysql + PHP是它的经典安装部署方式,相关的软件全部都是开源免费的,所以使用PHP可以节约大量的正版授权费用。
不过PHP作为一个开源软件,它缺乏大型科技公司的支持背景,网络上对它的唱衰也是经久不衰,不过它的持续迭代和性能持续增强的现实却是鼓舞人心的,PHP社区用实际行动给予各种质疑强有力的回击。
H. 如何学习php
PHP相对于其他语言,比较简单,相对好上手,比较适合零基础的人学习,自学的话对自己的自律性要求很高,我之前就在领元学校学习的,所以如果可以的话我建议去学习班里学习,后期边开发边学习,问题和错误一个个解决过去,不断的积累经验。
I. php mvc 如何迭代多版本显示
有两种方法可以实现. 一种是AJAX, 另外一种是html的iframe.你可以先去了解一下这两种技术的原理
J. php循环结构的怎么使用的实例详解
php的循环共有四种:while、do while、for、foreach。
while循环:
while(条件为真){
要执行的代码;
}
do while循环:
do{
要执行的代码;
}while(条件为真);
这两种循环的区别在于,while循环先判断条件后执行操作,而do while先执行一次操作后判断条件。
for循环:
for(initcounter;testcounter;incrementcounter){
要执行的代码;
}
/*
initcounter:初始化循环计数器的值
testcounter::评估每个循环迭代。如果值为TRUE,继续循环。如果它的值为FALSE,循环结束。
incrementcounter:增加循环计数器的值
*/
例如
for($i=0;$i<=10;$i++){
echo"$i";
}
这个例子表示设定一个$i,其值为0,每次循环后$i加1,当$i<=10的条件为真是循环执行。这个循环结果就是显示了0到10的所有整数。
foreach循环:
foreach循环只能用于遍历数组array。
foreach($arrayas$value){
要执行的代码,通常$value会在这里使用;
}
/*
$array为数组本身
$value为数组中的值,这里的$value不是数组,每次循环其值都会重写
*/
例如
$colors=array("red","green","blue","yellow");
foreach($colorsas$value){
echo$value."/";
}
//结果为:red/green/blue/yellow/
每次循环都会将数组中的值依次写入$value中,直到数组全部被遍历完成后循环结束。