`
hanbaohong
  • 浏览: 407375 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PHP 全局变量在用户自定义函数内部不可见

    博客分类:
  • PHP
 
阅读更多

全局变量是定义在任何函数之外,其作用域是整个PHP文件,但在函数内部不可见,若要使其可见就需要用global 声明。

 

<?php
$val1 = 1;
$val2 = 2;
function test()
{
   echo "start\n";
   echo "val1: ".$val1."\n";                                // 不可见
      echo "val2: ".$val2."\n";                             // 不可见

   global $val2;                                    //global声明了$val2, 使其可见
   echo "声明:global val2 以后\n"; 
      echo "val2: ".$val2."\n";                                //$val2 可见了
   $val2 = 100; 
   echo "end\n";
   $val1 = 100;                                                    //只是局部变量
}
test();
echo "调用了test()以后:\nval2 = ".$val2."\n";      //$val2被test()函数改变了
echo "val1 = ".$val1."\n";                                    //没有被test()改变
?>

 
结果:

start
val1:
val2:
声明:global val2 以后
val2: 2
end


调用了test()以后:
val2 = 100
val1 = 1

分享到:
评论

相关推荐

    (第七讲) PHP函数和自定义函数

    但请注意,过度使用全局变量可能导致代码难以维护和理解。 5、递归函数 递归函数是一种能够调用自身的函数,常用于解决需要多次重复相同步骤的问题,如阶乘计算: ```php function factorial($n) { if ($n == 0) ...

    PHP学习笔记之自定义函数

    在PHP编程语言中,自定义函数是开发过程中不可或缺的一部分,它们允许我们封装代码,提高代码的可重用性和可维护性。这篇“PHP学习笔记之自定义函数”着重讲解了如何在PHP中创建、调用以及优化自定义函数。 首先,...

    PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)

    如果在函数内部需要访问或修改全局变量,必须使用`global`关键字来声明。例如,在`Demo8.php`中,函数`fa()`修改了全局变量`$a`的值,从5变为了2。如果不使用`global`关键字,则在函数内部对`$a`的操作仅限于函数...

    Discuz!常用全局变量、函数参考手册和数据库每个表部分的作用[归类].pdf

    常用全局变量、函数参考手册和数据库每个表部分的作用[归类].pdf"文档,显然是针对Discuz! 开发者或管理员的重要参考资料。它详细列举了Discuz! 中的一些关键全局变量,这些变量对于控制论坛的功能和用户权限至关...

    PHP全局变量与超级全局变量区别分析

    本文分析了PHP全局变量与超级全局变量区别。分享给大家供大家参考,具体如下: 全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似...

    php 全局变量范围分析

    在用户自定义的函数中,会自动创建一个新的局部变量的作用域,这意味着在函数内部声明的变量不会影响到函数外部的变量。这是PHP中函数作用域的基本规则。例如,如果我们在函数内部声明了一个名为$a的变量,那么这个...

    PHP经典实例--函数

    局部变量只在其所在函数内部有效,而全局变量在整个脚本中都可用,但不能直接在函数内部访问,除非使用`global`关键字。静态变量在函数每次调用时保持其值,而超全局变量(如`$_GET`, `$_POST`)在整个脚本范围内...

    PHP项目开发中最常用的自定义函数整理

    在编写自定义函数时,常见的字符串处理技巧包括使用str_replace和preg_replace函数进行字符替换,以及使用addslashes和d_addslashes函数进行特殊字符的转义处理。 9. 字符串循环处理 在处理数组中的字符串时,需要...

    php中的注释、变量、数组、常量、函数应用介绍

    PHP有大量内置函数,同时也支持用户自定义函数。在调用函数时,如果函数内部需要引用外部变量,则需要使用global关键字声明这些变量是全局变量。 控制结构如if、else、elseif、switch、while、do-while等,在PHP中...

    PHP函数实验报告

    PHP内置了大量的内建函数,同时也可以自定义函数以满足特定需求。 二、函数的创建与调用 在PHP中,我们可以通过`function`关键字来创建一个函数。例如,定义一个名为`greet`的函数,它接受一个参数`$name`并打印...

    PHP 常用函数 网上各类函数

    在`fun_fun.php`和`frm_fun.php`中,可能会包含各种实用的自定义函数,如字符串操作、数组处理、日期时间操作、文件I/O等。这些函数经过测试,可以放心在项目中使用,以简化代码和提高效率。学习和理解这些函数的...

    YII2框架自定义全局函数的实现方法小结

    4. 如果在全局范围内频繁使用这些自定义函数,应该考虑其执行效率和对性能的影响,避免引入过多的全局函数导致程序运行缓慢。 5. 如果使用方法三,利用命名空间时,应注意正确使用命名空间的引用路径,避免路径错误...

    第七章 php自定义函数实现代码

    如果需要在函数内部使用全局变量,可以使用 `global` 关键字将其声明为全局变量。 **示例代码**: ```php &lt;?php $a = 5; function funcChangeValue() { global $a; $a = 10; } funcChangeValue(); echo $a; // ...

    php变量范围介绍

    但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内,此时为局部变量。 PHP 中全局变量在函数中使用时必须申明为global。 在函数中使用global声明的...

    帝国CMS使用用户自定义函数取发表的新闻数

    本文将详细介绍如何在帝国CMS中通过用户自定义函数来实现这一功能。 首先,我们要创建一个自定义函数,这个函数的目的是根据指定的用户ID计算其发布的新闻数量。函数代码如下: ```php function user_newstotal($...

    帝国cms使用自定义函数获取用户发表新闻数量的方法

    同时,在编写自定义函数时,还要注意避免使用全局变量,或者在函数结束后及时清理这些变量,以免影响系统的其他部分或者引起潜在的数据泄露问题。 总结来说,通过在帝国CMS中添加自定义函数和标签,可以方便地实现...

    PHP函数的应用详解.pdf

    在函数内部,除非使用`global`关键字,否则不能直接访问全局变量。 - **静态变量**:在函数内部声明并用`static`修饰的变量。即使函数执行结束,静态变量的值也不会丢失,下次函数调用时会保留之前的状态。 **参数...

    用php实现像JSP,ASP里Application那样的全局变量

    在JSP和ASP中,`Application`对象提供了在整个应用程序生命周期内存储和检索数据的能力,即使在用户会话之间也是如此。在PHP中,虽然没有直接对应的内置功能,但可以通过自定义类来模拟这一行为。 以下是根据提供的...

    对某 DedeCMS 二开系统全局变量追加漏洞利用1

    【对某 DedeCMS 二开系统全局变量追加漏洞利用1】 这篇文章主要讲述了作者针对一个基于DedeCMS二次开发的系统进行安全测试的过程。DedeCMS是一个流行的PHP内容管理系统,由于其开源特性,常常被用于搭建网站。然而...

    BUUCTF-Web-Mark loves cat变量函数覆盖

    在PHP 5.3.0之前,如果`register_globals`配置选项设为`ON`,那么HTTP请求中的变量(如GET、POST、COOKIE等)会被自动转换为全局变量。攻击者可以通过操纵这些请求参数来覆盖预定义的变量,造成安全风险。自PHP ...

Global site tag (gtag.js) - Google Analytics