假设现有A B C三个PHP文件,B和C调用A,其中A.php的代码为:

<?php
/* 定义file:A.php, 假设当前目录为根目录 */// 定义全局变量: globalVariableA$globalVariableA="This is a global variable";// 1)显示globalVariableA的值echo "A) The value of global variable A in A.php is $globalVariableA;<br/>";
?>

B.php的代码为:

<?php
/* 定义file: B.php,假设当前目录为根目录 */// 包含A.php
include "A.php";// 定义函数ShowV()
function ShowV($p){// 2)显示globalVariableA的值echo ($p ? "B)" : "C)") . " The value of global variable A in A.php is " . ($globalVariableA == NULL ? "NULL" : $globalVariableA) . "<br/>";
}ShowV(1);
?>

C.php为调用过程代码为:

<?php
/* file: C.php */
// 包含B.php
include "B.php";ShowV(0);
?>

结果为:

A.php runtime

B.php runtime

C.php runtime

由此可见,include文件的全局变量作用域仅在当前文件(也即网页页面)。注释:这里的global变量是指编程语言的全局,并非是cgi server容器的global变量值。所以我们在使用特定页面使用指定变量的时候,默认状态下在其他页面被包含的情况下是无法调用该变量的值。在一方面来说,这是封装,泄露机制和安全保护。另一方面来说这也是一种限制,对“自由发挥”的限制。虽然Internet互联网潜在对web server服务器和用户的隐私和财产安全诸多威胁,但这并不妨碍开发者developer对web的扩展和用户对其的意识延伸。这两者并不冲突矛盾。

那么,作为开发者的我们,该如何突破无视这种限制和阻碍?

其实,如果我们学习过规范的、基础的编程知识就没有问题了。中国有句古话:授人与鱼不如授人与渔。跳跃式发展不利于未来的提升。忽视基础(设施)的完善无异于饮鸠止渴。钻牛角尖很可能是掘头路一条。(当然钻穿了就是开拓者)

PHP:include包含文件局部引入全局变量失效的作用域问题相关推荐

  1. 第五章:B视频Include包含文件

    今天给大家讲解一下Include包含文件 官网地址:https://www.w3soft.cn/codegenerator 视频教程如下 点我播放视频教程 操作代码 文件名: include生成文件 ...

  2. asp.net使用include包含文件中文乱码_C++: 编写自己的头文件

    C++的多文件结构和预编译命令入门课程,我觉得讲的很好: 学堂在线-国家精品课程在线学习平台​www.xuetangx.com 为在不同的文件中使用同一个类,类的定义就必须保持一致,为确保各个文件中类 ...

  3. Quartus和Modelsim中使用`include包含头文件的对比

    在Quartus建立的工程中包含有头文件,而该工程在Modelsim仿真时有时会报错. Quartus版本是Quartus Prime 17.1 Lite Edition:Modelsim版本是Mod ...

  4. PHP中两种包含文件方式、三种注释风格、四种标记风格

    2019独角兽企业重金招聘Python工程师标准>>> 一.两种包含文件的方式 ①require语法格式:require("文件名"):这个函数通常放在PHP程序 ...

  5. jsp引入页面,即包含文件的两种方法介绍

    最近在练手做一个小Demo中,比较多的用到了jsp引入另一个jsp的例子,感觉很简单,但是不幸出现了错误500,于是查找了一些资料来了解一下关于jsp包含的方法,这里分享出来,个人总结,可能不够完善, ...

  6. PHP包含文件函数include、include_once、require、require_once区别

    PHP的4个文件包含函数区别 include.include_once.require.require_once include() .require()语句包含并运行指定文件. 结构包含上基本一样, ...

  7. 【转】C++中#include包含头文件带 .h 和不带 .h 的区别

    C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些 ...

  8. include包含头文件的语句中,双引号和尖括号的区别

    #include <>格式:引用标准库头文件,编译器从标准库目录开始搜索 #incluce ""格式:引用非标准库的头文件,编译器从用户的工作目录开始搜索,如果找不到, ...

  9. UnityShader7:内置包含文件UnityCG.cginc与GG/HLSL语义

    一.包含文件 .cginc 类似于头文件,cginc 可以理解为 GC include,用 #include 指令包括进来后,就可以使用其中的变量和帮助函数,在上一章:UnityShader6:最简单 ...

最新文章

  1. Echo团队Alpha冲刺随笔 - 第九天
  2. php数组的奇数_用php输出一个数组中的偶数或奇数的方法
  3. Java 多线程使用
  4. Sqlplus导出excel文件
  5. 天线的起源与发展历史
  6. 内存四区(代码区 静态区 栈区 堆区)
  7. java oralce merge_Oracle数据库merge into的使用,存在则更新,不存在则插入
  8. C语言 main 函数参数 main(int argc, char *argv[]) - C语言零基础入门教程
  9. 第十五天 图【下】(大结局)
  10. php 设置 server 变量,php 服务器变量 $_SERVER
  11. 分布式链路追踪工具skywalking 介绍
  12. 4. Jmeter主界面的介绍
  13. python爬虫案例——根据网址爬取中文网站,获取标题、子连接、子连接数目、连接描述、中文分词列表
  14. 温暖的《北国之恋》_ing
  15. httpd-2.4.18源码安装
  16. 灵格斯怎么屏幕取词_灵格斯词霸(Lingoes)基础使用教程
  17. 陈纪修老师《数学分析》 第05章:微分中值定理及其应用 笔记
  18. 边际递减,边际成本,边际收益,边际效益
  19. 计算机换显卡,老平台只换显卡 这样升级行不行?
  20. 新手小白之初识JAVA,随堂笔记

热门文章

  1. KinectFusion原理介绍
  2. 著者四角号码查询_著者姓名汉语拼音与四角号码数字混编书次号的研究
  3. 1078 加油站加油
  4. 服务器ie不能打开购物网站,[Answers 分享]通过IE浏览器无法打开网上银行或者支付宝等加密安全站点...
  5. Python:datetime时间UTC时间转东八区
  6. [转][TFS] 禁止默认允许多人签出和强制解除签入签出锁
  7. Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合
  8. 字符移位(将大写字母移到字符串尾部并不改变相对顺序)
  9. 永辉私域流量模式案例:如何利用商域流量打造好企业自己的私域流量池?
  10. 飞凌国产芯片系列经验分享|A40i开发板应用笔记-PWM 的应用