摘要:的全局变量看起来很好用,但稍有不慎,很容易被套住。比如如果一个简单的配置文件如下当我们想要使用这个的时候,都知道使用就行了。没错,这样可以。
php 的全局变量看起来很好用,但稍有不慎,很容易被套住。
比如: 如果一个简单的php配置文件如下:
$name="Yi_Zhi_Yu";
当我们想要使用这个$name的时候,都知道使用include就行了。没错,这样可以。但假如我想把这个$name作为一个全局变量使用,以方便统一修改呢
也容易:
include("./config.inc"); global $name; echo $name; //Yi_Zhi_Yu
那么问题来了,假如某个函数里我要用这个全局变量呢,或许你会这么写
function test() { include("./config.inc"); //这里加载是错误的 global $name; var_dump($name); } test();
Sorry, 你这样是得不到这个变量值得,得到的仅仅是个null
这就是我在实际中遇到的一个坑,即文件加载的全局变量的初始化只能在整个脚本的最外层,我说的最外层是指不能被包含在任何的函数体或者类里面
include("./config.inc"); //最外层初始化全局变量 function test() { global $name; //使用的时候定义其全局属性 echo $name; //Yi_Zhi_Yu } test();
那再来一个问题,一个在test里面被定义了全局属性的变量(假设$age=25),假如在外面被修改了值($age=27),然后这个变量($age)再在另一个函数中调用,这个时候的这个$age应该是哪个值呢,代码如下,是被初始化的时候值(25),还是在外面被修改了的值(27)呢。
function test() { global $age; $age=25; } function test2() { global $age; var_dump($age); //这个值应该是什么? } test(); var_dump($age); $age=27; test2();
没错,这个值应该是27, 这就是全局变量,只不过这种定义和初始化都是在一个函数体内完成的(不过这种方式不推荐,一般都是在最上面我说的配置文件中初始化的,只在使用的时候定义其全局属性,但不会在代码中修改其值,仅仅作为配置项获取)。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30219.html
摘要:话说当下一共有种运行模式,分别是和模块模式。使用,全称进程管理器进行管理。工作原理启动时载入进程管理器进程管理器自身初始化,启动多个解释器进程并等待来自的连接当客户端请求到达时,进程管理器选择并连接到一个解释器。 我们知道 workerman 程序需要在php-cli模式下运行,也就是命令行模式,这块我们有必要了解一下。 话说PHP当下一共有4种运行模式,分别是CGI、FastCGI、...
摘要:而类的实例并不会影响类的静态变量,只是会修改对象实例本身的值,所以后面两个的结果总是同样,如果我们使用和结果也将仅仅是静态变量变化后的结果,与类的实例无关以上是对和的暂时做的了解的总结,如有纰漏,请及时指正 概念 python 的classmethod 与staticmethod 这两个有什么区别? 二者又有什么联系?在google和baidu之后, 得到的大致的联系就是二者都是对类的...
摘要:起步引擎提供了另种管理设置值的途径。假设我们需要为我们扩展定义一个值并用函数返回它的内容。在为了避免命名空间的冲突,我们扩展的名字作为所有值的前缀。仅仅是一种约定,一个句点用来分隔扩展名和说明性的初始设定名字。 起步 Zend引擎提供了另种管理设置值(INI)的途径。现在弄个简单的,我们经常看到php.ini里有诸如 display_errors = On 这样的全局设置。假设我们需要...
摘要:如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。为解决线程的并发问题,引入了线程安全资源管理器。的全拼,用来存放各个线程的链表。 PHP 进阶之路 - 零基础构建自己的服务治理框架(上) PHP 进阶之路 - 零基础构建自己的服务治理框架(下) PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 PHP 进阶之路 - 亿级 pv 网站架构实战之性能压榨 注...
摘要:本文介绍笔者自己写的语法糖扩展,扩展了一种全新的超全局变量获取方式。优秀的语法糖,应该是一种灵魂思想的注入,简单写法的应用。非常重要的一点是它很简单项目背景这个出发点很简单,从扩展名称我们应该能猜到它是做什么的。 奇技指南语法糖往往给程序员提供了更实用的编码方式,可以使代码更简洁流畅,语义更自然。本文介绍笔者自己写的PHP语法糖扩展,扩展了一种全新的PHP超全局变量获取方式。本文作者...
阅读 1213·2021-11-25 09:43
阅读 1969·2021-11-11 10:58
阅读 1186·2021-11-08 13:18
阅读 2659·2019-08-29 16:25
阅读 3508·2019-08-29 12:51
阅读 3306·2019-08-29 12:30
阅读 747·2019-08-26 13:24
阅读 3682·2019-08-26 10:38