关于 thinkphp import 文件内容变量失效问题
用TP 集成支付宝账户绑定功能时碰上个问题
ORM 下有文件 config.class.php
直接import()后 发现里面的变量无法使用 但确实是加载咯。。(在config.class.php输出内容成功)
思考百度了半天。。
原来一直知道 JS 作用域 忽略了 PHP 函数也有作用域的- -
具体原理:
<?php class b{ function test(){ myImport("a.php"); $testClass = new impClass(); $testClass->test(); echo $a."from b"; } } class a{ function funa(){ $InsB = new b(); $InsB->test(); } } function myImport($file){ require $file; echo $a."from myImport"; } $InsA = new a(); $InsA->funa(); ?> a.php <?php $a = "a"; class impClass{ function test(){ echo "import success"; } } ?>
显示:
顺便说下这样设计的好处 。。 可充分隔离个文件全局变量可能造成的影响。。
生命只有一次。