PHP迭代

计算1到10的和:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<?php

function
f($n) {

    $before_1
= 1;

    $before_2
= 1;

    for( $i
= 3;$i
<= $n;++$i
) {

        $item
= $before_1
+ $before_2;

        $before_2
= $before_1;

        $before_1
= $item;

    }

    return
$item;

}

echo
f(10);

?>

  

迭代的语法体现是循环

用递归来试下:

?





1

2

3

4

5

6

7

8

9

10

<?php

function
f($n) {

    if($n
== 1 || $n
== 2) {

        return
1;

    }

    return
f($n-1) + f($n-2);

}

echo
f(10);

?>

  输出结果同上~

匿名函数(没有名字的函数,定义时,不需要增加名字即可)的使用:

?





1

2

3

4

5

6

<?php

$sayHello
= function
($name) {

    echo
‘Hello, ‘,$name;

};

$sayHello(‘evilxr‘);

?>

  匿名函数的use语法,use语法:是匿名函数生成的语法!use可以使得匿名函数,使用其匿名函数外部作用域的变量的语法

?





1

2

3

4

5

6

7

<?php

$v1
= ‘evilxr‘;

$func
= function
() use($v1){

    var_dump($v1);

};

$func();

?>

  

时间: 2024-10-15 21:42:19

PHP迭代的相关文章

关于迭代測试的一些思考

作者:朱金灿 来源:http://blog.csdn.net/clever101 一个软件的功能的越来越多,怎样建立一个规范的測试流程来保证对开发的功能进行充分的測试,是摆在我们面前的难题.在改动bug中经常会出现一种"按下葫芦浮起瓢"情形--改动了A模块的bug,却造成了原来測试没有问题的B模块出现了新的问题.这就促使我们思考:怎样保证測试的百分百的覆盖率.为此我设想一种迭代測试和迭代公布的流程.这个流程详细是这种:全部功能測试分为常规功能測试和新功能測试.所谓常规功能測试是指之前測

iOS学习6.Objective-C中的各种遍历(迭代)方式

说明:转自文顶顶 一.使用 for 循环 要遍历字典.数组或者是集合,for 循环是最简单也用的比较多的方法 -(void)iteratorWithFor { //////////处理数组////////// NSArray *arrayM = @[@"1",@"2",@"3",@"4"]; NSInteger arrayMCount = [arrayM count]; for (int i = 0; i<arrayMC

【转载】GBDT(MART) 迭代决策树入门教程 | 简介

      转载地址:http://blog.csdn.net/w28971023/article/details/8240756        GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案.它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法.近些年更因为被用于搜索排

LeetCode 145 Binary Tree Postorder Traversal(二叉树的后续遍历)+(二叉树、迭代)

翻译 给定一个二叉树,返回其后续遍历的节点的值. 例如: 给定二叉树为 {1, #, 2, 3} 1 2 / 3 返回 [3, 2, 1] 备注:用递归是微不足道的,你可以用迭代来完成它吗? 原文 Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 2 / 3 return [3,2,1]. Note: Recur

Python迭代与递归方法实现斐波拉契数列

首先是迭代的方法实现: def f(n): f1, f2, fn = 1, 1, 1 while n>2: fn = f1 + f2 f1 = f2 f2 = fn n = n - 1 return fn 然后用递归的方法实现: def f(n): if n == 1: return 1 if n == 2: return 1 else: return f(n - 1 ) + f(n - 2) 很明显,此时递归的方法比迭代更简单更易懂

poj 3134 Power Calculus(迭代加深dfs+强剪枝)

Description Starting with x and repeatedly multiplying by x, we can compute x31 with thirty multiplications: x2 = x × x, x3 = x2 × x, x4 = x3 × x, …, x31 = x30 × x. The operation of squaring can be appreciably shorten the sequence of multiplications.

递归和迭代的区别

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合. 使用递归要注意的有两点: 1)递归就是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口. 递归分为两个阶段: 1)递推:把复杂的问题的求解推到比原问题简单一些的问题的求解; 2)回归:当获得最简单

敏捷软件开发——项目版本迭代

开发人缘和客户决定迭代规模,一般需要两周.同样地,刻骨选择他们想要在首次迭代中实现的素材(功能).他们不能选择与当前开发速度不符的更多的素材. 迭代期间用户素材的实现顺序属于技术决策范畴,开发人员采用最具有技术意义的顺序来实现这些素材. 可以串行的实现,完成了一个再完成下一个,或者分摊这些素材,然后一起并行地开发. 一旦迭代开始,客户就不能再开遍该迭代期间需要实现的素材.除了开发人员正在实现的素材外,客户可以任意改变或重新安排项目中其他任何素材. 即使没有完成所有的用户素材,迭代也要在先前指定的

老齐python-基础7(文件操作、迭代)

在python3中,没有file这个内建类型了(python2中,file是默认类型) 1.读文件 创建文件,130.txt 并在里面输入 learn python http://qiwsir.github.io [email protected] >>> f = open("130.txt") >>> dir(f) #查看方法 ['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dic

瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别

瀑布式开发.迭代开发,区别[都属于,生命周期模型]         两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好.特别是前期阶段,设计的越完美,提交后的成本损失就越少.我现在从事的外包项目就是这样的流程. 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目