时间:2021-07-01 10:21:17 帮助过:19人阅读
输出为123.
- <br><!--?php <BR-->$jack = 1000; <br>?> <br>children.php 如下定义: <br><!--?php <BR-->require("father.php"); <br>$jack=123; <br>echo $jack."/n"; <br>?> <br> <br>php children.php <br>运行
结果为:$jack is null.也就是说在testJack()中引用的$jack是一个局部变量。
- <br><!--?php <BR-->require("father.php"); <br>function testJack(){ <br>if(!isset($jack)){ <br>echo '$jack is null'."/n"; <br>} <br>}//testJack <br>testJack(); <br>?> <br> <br>php children.php <br>运行
结果为$jack is not null!
- <br><!--?php <BR-->require("father.php"); <br>function testJack(){ <br>global $jack; <br>if(!isset($jack)){ <br>echo '$jack is null'."/n"; <br>}else{ <br>echo '$jack is not null'."/n"; <br>} <br>}//testJack <br>testJack(); <br>?> <br> <br>则运行
输出:$jack is null
- <br><!--?php <BR-->require("father.php"); <br>class JackTest{ <br>public function testJack(){ <br>if(!isset($jack)){ <br>echo '$jack is null'."/n"; <br>}else{ <br>echo '$jack is not null'."/n"; <br>} <br>}//testJack <br>} <br>$jackTest = new JackTest(); <br>$jackTest->testJack(); <br>?> <br> <br>运行结果
- <br><!--?php <BR-->$casefile = $_SERVER['argv'][1]; <br>echo $casefile."/n"; <br>require($casefile); <br>echo $jack."/n"; <br>?> <br> <br>运行php children.php father.php <br>结果如下: <br>father.php <br>1000 <br>也就是说我们动态加载程序运行成功了。。 <br><strong>情况5:</strong> <br>要把动态加载和类的定义结合起来: <br>目录关系式这样的: <br>|- c.php <br>|- Bfold - b.php <br>|- Afold - a.class.php (里面的函数引用了../Bfold/b.php ) <br>也就是说 在c.php 中new 了class a.class ,而a.class.php 的一个函数中require 了Bfold 文件夹下的b.php ,这个require(../Bfold/b.php )报错,Warning: …… <br>因为你让服务器当前执行的是c.php 文件,所以php 解析的时候是把路径相对于c.php 而言的,你试试把(../Bfold/b.php )改成(Bfold/b.php )看看,应该就不会报错了。 <br>下面是程序例子,说明在函数内部使用require_once (A.php ). <br><strong>对require_once 的理解:</strong> <br>假设B.php 中引用了require_once(A.php); 这条语句。。 <br>那么其实是相当于调用了A.php 这个匿名的lambda 函数去执行。如下图: <br>C.php 在一个函数调用中 require 了 B.php------》 <br>B.php 在普通语句中 require 了 A.php--------》 <br>A.php <br>现在我们调用 php B.php ;因为 B.php 在普通语句中使用了 require 调用了 A.php ,那么 A.php 会把它的相对 A 来说是全局变量的变量,注册到 B.php 的环境中。因为 B.php 是根开始调用文件,他的运行环境就是全局环境。所以A.php 文件中的变量在 B.php 可以被正常使用。<br><br>现在我们调用 php C.php ;那么 C 是在函数使用 require 调用了 B.php 的,然后 B 又调用了 A ,感觉在这个调用的过程中,相对 B 和 A 根运行环境是 C 的调用函数的环境 ,但 C 的调用函数如果要使用 B 和 A 中的变量,就没有办法了。<br><br>如果用 global $a, 去引用,那么由于 $a 在这种情况下不属于全局变量,引用不到。 <br>如果用 $a 去引用,那么由于 $a 会被当成局部变量也引用不到的。
- <p></p>
- <p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/327466.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/327466.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">情况1: father.php如下定义: 代码如下:</span></p><pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li>?php $jack = 1000; ? children.php 如下定义: ?php require("father.php"); $jack=123; echo $jack."/n"; ? php childr...<p></p></li><li> </li></ol></pre>