zoukankan      html  css  js  c++  java
  • php中static静态变量的使用方法详解

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

     
    php中的变量作用范围的另一个重要特性就是静态变量(static 变量)。静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果。
     

    看看下面的实例:

    复制代码 代码如下:

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


    本 函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态(static)的:
    如下:

    复制代码 代码如下:

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


    本函数每调用Test()都会输出 $w3sky 的值并加一。
    静态变量也提供了一种处理递归函数的方法。递归函数是一种自己调用自己的方法。写递归函数时要小心,因为可能会无穷递归下去,没有出口.务必确保 有方法来中止递归。以下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止:
    静态变量与递归函数的例子:

    复制代码 代码如下:

    <?PHP
    function Test()
    {
    static $count = 0;
    $count++;
    echo $count;
    if ($count < 10) {
    Test();
    }
    $count--;
    }
    ?>


    注: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。
    声明静态变量例子:

    复制代码 代码如下:


    <?PHP
    function foo(){
    static $int = 0;// correct
    static $int = 1+2; // wrong (as it is an expression)
    static $int = sqrt(121); // wrong (as it is an expression too)
    $int++;
    echo $int;
    }
    ?>

  • 相关阅读:
    jquery 实现 html5 placeholder 兼容password密码框
    php返回json的结果
    使用PHP读取远程文件
    Sharepoint 自定义字段
    Sharepoint 中新增 aspx页面,并在页面中新增web part
    【转】Sharepoint 2010 配置我的站点及BLOG
    JS 实现 Div 向上浮动
    UserProfile同步配置
    【转】Import User Profile Photos from Active Directory into SharePoint 2010
    Sharepoint 2010 SP1升级后 FIMSynchronizationService 服务无法开启
  • 原文地址:https://www.cnblogs.com/shsgl/p/4766849.html
Copyright © 2011-2022 走看看