解析thinkphp import 文件内容变量失效的问题

yipeiwu_com7年前PHP代码库
用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";
   }
}
?>

显示:

相关文章

总结一些PHP中好用但又容易忽略的小知识

本文主要给大家总结了PHP中一些好用的小知识,分享出来供大家参考学习,下面来看看详细的介绍: 1、PHP函数之判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保...

php和C#的yield迭代器实现方法对比分析

本文实例讲述了php和C#的yield迭代器实现方法对比。分享给大家供大家参考,具体如下: yield关键字是用来方便实现迭代器的,免去了手工写迭代器的繁琐。迭代器常被用来实现协程,所以...

php+ajax实现商品对比功能示例

本文实例讲述了php+ajax实现商品对比功能。分享给大家供大家参考,具体如下: 商品对比调用的JS文件(包含了商品对比框浮动JS): /*浮动窗口*/ (function(){...

PHP最常用的正则表达式

一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0...

PHP实现限制IP访问的方法

本文实例讲述了PHP实现限制IP访问的方法。分享给大家供大家参考,具体如下: //获取客户端ip if (getenv("HTTP_CLIENT_IP")) $ip = gete...