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

yipeiwu_com6年前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验证session无效的解决方法

本文实例讲述了php验证session无效的解决方法。分享给大家供大家参考。具体方法如下: 一、问题 今天在配置 apache+php环境时折腾了很久很久,后来成功了但发现验证码图片可以...

php把大写命名转换成下划线分割命名

有时候需要把一个字符串中的大写转换成 _+小写的方式,在变量命名的时候会碰到这种问题,直接上代码: $name = 'AppPromoZhongQiu2014ActiveStatus...

判断php数组是否为索引数组的实现方法

HP没有内置判断是否索引数组的方法,简单实现了一个,用法:复制代码 代码如下:echo is_assoc($array)?'索引数组':'不是索引数组';is_assoc函数如下:复制代...

php 无极分类(递归)实现代码

复制代码 代码如下:<?php $conn=mysql_connect("localhost","root","myoa888"); mysql_select_db("lost63...

PHP设计模式之工厂方法设计模式实例分析

本文实例讲述了PHP设计模式之工厂方法设计模式。分享给大家供大家参考,具体如下: 一、什么是工厂方法模式 作为一种创建型设计模式,工厂方法模式就是要创建“某种东西”。对于工厂方法,要创建...