zoukankan      html  css  js  c++  java
  • 变量作用域

    变量作用域指的是在变量声明之后它的有效作用范围。

    1.函数变量

    函数变量值得是在创建函数时,放在函数名后面括号内声明的变量。函数变量只在函数内部有效,退出函数之后就无法访问这些变量。

    代码示例:

    <?php
    header('Content-Type:text/html;charset=utf-8');
    $filepath="E:/works/app.doc";
    function opendocument($filepah){
    	echo "正在打开文件".$filepah.'<br/>';
    }
    opendocument("D:/works/app.xls");
    echo $filepath;
    /*
    *输出为:
    *正在打开文件D:/works/app.xls
    *E:/works/app.doc
    */

    函数参数也可以称为局部变量,因为这些参数只在函数内部起作用,在函数外部不能访问。

    2.局部变量

    局部变量的作用域与它声明的位置有关,并且只在质地昂的范围内有效。

    代码示例:

    $money=200;
    function UpdateAccountMoney(){
    	$money=500;
    	$money+=500;
    	echo "更新后的余额为:".$money;
    	echo '<br/>';
    }
    UpdateAccountMoney();
    echo "当前余额为:".$money;
    /*
    *输出为:更新后的余额为:1000
    *当前余额为:200
    */

    程序输出了两个不同的值,这是因为在UpdateAccountMoney()函数中的$money变量为局部变量,修改局部变量的值不会影像函数外部的任何值。$money变量的值在函数执行结果是被抛弃,所以主程序内$money变量的值仍是200。

    3.静态变量

    静态变量的作用域比余部变量大,他在声明时需要使用staic关键字。静态变量竟可以用在函数内,他的值在函数退出时不会丢失,并且再次调用此函数时,还能保留值。

    代码示例:

    $number=500;
    function UpdateOnlineNumbers(){
    	static $number=0;
    	echo "当前在线人数为:".$number;
    	$number+=10;
    }
    echo "第一次调用";
    UpdateOnlineNumbers();
    echo '<br/>';
    echo "第二次调用";
    UpdateOnlineNumbers();
    echo '<br/>';
    echo "主程序内$number变量的值为:".$number;

    输出结果为:

    第一次调用当前在线人数为:0
    第二次调用当前在线人数为:10
    主程序内$number变量的值为:500

    由于在UpdateOnlineNumbers()函数中指定$number为静态变量,因此,每次调用时都在原来的值的基础上进行递增。而在函数外声明的$number变量不会发生变化。

    4.全局变量

    全局变量的作用域最大,可以在整个PHP程序中的任何地方访问。声明全局变量的关键字为global,同样需要在函数内使用。

    代码示例:

    function UpdateMoney(){
    	global $money1,$money2,$newmoney;
    	$newmoney=$money1-$money2;
    }
    $money1=500;
    $money2=200;
    $newmoney=0;
    UpdateMoney();
    echo "现在的余额为:".$newmoney;

    输出结果:

    现在的余额为:300

    如果不在$newmoney前加global,改变量会认为局部变量,此时页面上显示的值为0。添加global后,UpdateMoney()函数对变量的修改将在全局内有效,所以输出为300。

    注意:在使用全局变量时,一定要注意,因为一旦任何一个地方修改了全局变量的值,全局变量的值就发生了变化,这样很容易发生意外。

  • 相关阅读:
    TDH-hbase shell 常用命令
    WebService之基于REST机制的实现实例(Java版)
    大牛地址
    Solr的SolrCloud与Master-slave主从模式对比
    solr亿万级索引优化实践-自动生成UUID
    Solr查询中涉及到的Cache使用及相关的实现【转】
    05-spectral 图机器学习之谱分解
    03-motifs 图机器学习之motif和结构角色
    04-communities 图机器学习之社区
    02-gnp-smallworld 图机器学习之最小世界
  • 原文地址:https://www.cnblogs.com/tommymarc/p/11627313.html
Copyright © 2011-2022 走看看