PHP使用函数静态变量实现指定迭代次数的方法

本文实例讲述了PHP使用函数静态变量实现指定迭代次数的方法。分享给大家供大家参考,具体如下:

在PHP中,除了类的静态成员属性外,在函数中同样可以利用 static 定义静态变量。从而便捷的完成函数迭代。

例1:

<?php
function Test()
{
  $a = 0;
  echo $a;
  $a++;
}
?>

在上例中,每次调用Test函数,a都被重新赋值为0,因为一旦退出本函数则变量a都被重新赋值为0,因为一旦退出本函数则变量a 就不存在了。要想完成迭代,需要写一个不会丢失本次计数值的计数函数,要将变量 $a 定义为静态的:

<?php
function test()
{
  static $a = 0;
  echo $a;
  $a++;
}
?>

这样$a只在第一次调用时被赋值,之后在每次调用时加1,并且不会被重写。

这样便可利用此特性,对某操作指定次数的迭代:

例2:(获取将某数组弹出5个元素后的结果)

$arr = range(1,10,1);
function test($arr)
{
  static $count=0;
  array_pop($arr);
  $count++;
  if ($count < 5) {
    test($arr);
  }else{
    var_dump($arr);exit;
  }
}
test($arr);

运行结果:

array(5) {
 [0]=>
 int(1)
 [1]=>
 int(2)
 [2]=>
 int(3)
 [3]=>
 int(4)
 [4]=>
 int(5)
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • php中static静态变量的使用方法详解
  • php中的静态变量的基本用法
  • PHP static局部静态变量和全局静态变量总结
  • php 静态变量与自定义常量的使用方法
  • PHP中的静态变量及static静态变量使用详解
  • php中静态类与静态变量用法的区别分析
  • 使用PHP静态变量当缓存的方法
  • PHP中类属性与类静态变量的访问方法示例
  • php中static 静态变量和普通变量的区别
  • 了解PHP的返回引用和局部静态变量
(0)

相关推荐

  • PHP中类属性与类静态变量的访问方法示例

    本文实例讲述了PHP中类属性与类静态变量的访问方法.分享给大家供大家参考,具体如下: <?php /* PHP类属性与类静态变量的访问 * Created on 2016-7-13 */ class test { const constvar='hello world'; static $staticvar='hello world'; function getStaticvar(){ return self::$staticvar; } } $obj=new test(); echo test

  • PHP中的静态变量及static静态变量使用详解

    静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会.就是说,下次再调用这个函数的时候,该变量的值会保留下来. 只要在变量前加上关键字static,该变量就成为静态变量了. <?php function test() { static $nm = ; $nm = $nm * ; print $nm."<br />"; } // 第一次执行,$nm = test(); // 第一次执行,$nm

  • php中static静态变量的使用方法详解

    看看下面的实例: 复制代码 代码如下: <?php function Test() { $w3sky = 0; echo $w3sky; $w3sky++; } ?> 本函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0".将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了.要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态(static)的: 如下: 复制代码 代码如下: <?php f

  • php中的静态变量的基本用法

    静态变量只存在于函数作用域内,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会.下次再调用这个函数的时候,该变量的值会保留下来. 静态的变量的基本用法 1. 在类中定义静态变量 [访问修饰符] static $变量名; 2. 如何访问静态变量 如果在类中访问 有两种方法 self::$静态变量名 , 类名::$静态变量名 如果在类外访问: 有一种方法 类名::$静态变量名 例子 复制代码 代码如下: class Child{ public $name;

  • php中static 静态变量和普通变量的区别

    php中static 静态变量和普通变量的区别 在变量的前面加上static 就构成了静态变量(static 变量). static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的. 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误. static变

  • PHP static局部静态变量和全局静态变量总结

    静态局部变量的特点: 1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它.倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值2.静态局部变量只会初始化一次3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式.即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量):静态变量的初始值为0.4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量.虽然用全局变量也可以达到上述目的

  • php 静态变量与自定义常量的使用方法

    ⚑ 静态变量的声明与使用 ⚑ 自定义常量的使用方式 什么是静态变量? 静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值. 下面举例: 复制代码 代码如下: <?php function add() { static $i=0; $i++; echo $i; } add(); echo " "; add(); ?> 这段程序中,主要定义了一个函数add

  • php中静态类与静态变量用法的区别分析

    本文实例分析了php中静态类与静态变量用法的区别.分享给大家供大家参考.具体分析如下: static是定义一个静态对象或静态变量,关于static 定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了. 1. 创建对象$object = new Class(),然后使用"->"调用:$object->attribute/function,前提是该变量/方法可访问. 2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态

  • 使用PHP静态变量当缓存的方法

    下面这个PHP的代码实例,功能是帮助用户重置密码,requestResetPassword是接收用户重置密码的请求并且做了相应的检查.为了更好的复用性,我将重置密码的操作单独分配到一个新的resetPassword的函数,更改完密码的后再调用sendEmail向用户发送一封通知邮件. 复制代码 代码如下: /** * 用户请求重置密码的接收器 */function requestResetPassword() {    //检查用户是否存在    if( !checkUserExists( $_

  • 了解PHP的返回引用和局部静态变量

    先阅读手册 ========== 从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & : 复制代码 代码如下: <?php  function &returns_reference()  {      $someref = 0;      return $someref;  }     $newref = &returns_reference();//相当于 $newref = &$someref;  ?> 有关引用的更多信息, 请查

随机推荐