Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含上的php变量更改_Php_Include - Fatal编程技术网

包含上的php变量更改

包含上的php变量更改,php,include,Php,Include,我在包含文件时遇到了php问题。当包含文件时,我的一个变量会发生变化,即使该文件没有进行任何处理;该文件只是一个类定义 下面是我的情况(我只是简化了它以使其更清晰,而不是发布实际的代码,这相当长): 文件baseclass.php 文件extendedclass.php 如果查看发布的代码,会发现变量$arrayKey在包含文件时会发生更改。包含的文件只是一个类定义。 所以,换句话说,当包含文件时,除了定义类之外,不会发生任何处理。 有没有人对可能发生的事情以及如何修复有任何提示或想法 希望我的

我在包含文件时遇到了php问题。当包含文件时,我的一个变量会发生变化,即使该文件没有进行任何处理;该文件只是一个类定义

下面是我的情况(我只是简化了它以使其更清晰,而不是发布实际的代码,这相当长):

文件baseclass.php

文件extendedclass.php

如果查看发布的代码,会发现变量$arrayKey在包含文件时会发生更改。包含的文件只是一个类定义。 所以,换句话说,当包含文件时,除了定义类之外,不会发生任何处理。 有没有人对可能发生的事情以及如何修复有任何提示或想法

希望我的问题清楚


提前感谢您的帮助

包含所述文件前后$myArray的值是多少?您是在循环开始时询问该值还是在循环结束后询问该值。因为变量$arrayKey在每次循环后都会改变。我要说的是它正在进行一些处理。为了证明这一点,请包含空文件,根据您的计算,它还应该更改变量。查找代码中声明对象的位置,如果有构造函数或getter,则可能查找它们。包含所述文件之前和之后的$myArray值取决于调用函数的位置。但作为一个例子,我有一个数组,其中有两个键'peter'和'john'。例如,在包含文件$myArray之后,即使该键在当前上下文中不存在,它也可能具有值'mary'。它显然是在通过另一个数组的另一个循环中设置的,因为键的值对它有意义。问题是我不明白这是怎么发生的。我在每个循环开始时以及调用“require_once”后检查值。该变量在调用“require_once”时发生更改,即使它只包含类定义。
class BaseClass{
   function doSomething(){
       ....
       foreach($myArray as $arrayKey => $classname){
           require_once($classname.'.php'); 
       }
   }
}
class ExtendedClass extends BaseClass{
.....
}