700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PHP:include包含文件局部引入全局变量失效的作用域问题

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

时间:2023-08-25 00:53:25

相关推荐

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

假设现有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.phpinclude "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.phpinclude "B.php";ShowV(0);?>

结果为:

A.php runtime

B.php runtime

C.php runtime

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。