php调用包含内部函数以供外部函数使用
我想php调用包含内部函数以供外部函数使用,php,php-include,Php,Php Include,我想在函数中包含一个带有php的文件,但要在函数之外使用它 function add( $F ){ $i = 3; while( $i > 0 ){ $i--; try{ if( ( include $GLOBALS['_SERVER']['DOCUMENT_ROOT'] . $F ) == 2 ){ break; } else{
在函数中包含一个带有php的文件,但要在函数之外使用它
function add( $F ){
$i = 3;
while( $i > 0 ){
$i--;
try{
if( ( include $GLOBALS['_SERVER']['DOCUMENT_ROOT'] . $F ) == 2 ){
break;
}
else{
sleep( 1 );
}
}
catch( Exception $e ){ }
}
die();
}
由于auto\u prepend\u文件
,此功能会自动包含在内
index.php
add( '/cat.php' );
echo 'my' . $cat;
/cat.php
$cat = 'cat';
echo '...';
return 2; //rather not exist but doesnt seem like there's a choice
加载index.php时:结果是my…
而不是my…cat
include
返回1,即使文件是否包含在内。好的,如果Notepad++50%完成了一个文件的上传,而这个文件同时是include
d,那么它将返回1,看起来它只包含一个空文件。这就是为什么==2
存在于add
函数中
function add( $F ){
$i = 3;
while( $i > 0 ){
$i--;
try{
if( ( include $GLOBALS['_SERVER']['DOCUMENT_ROOT'] . $F ) == 2 ){
break;
}
else{
sleep( 1 );
}
}
catch( Exception $e ){ }
}
die();
}
如果我想包含一些东西,我不希望得到这样的答案,比如你很幸运
或者不,下次运气更好
或者保存时间太长,什么都不享受
,或者到处都是一堆代码
那么这可能吗?还是有更好的选择?我可以使用包含(讽刺)吗?我知道有人提出过类似的问题,但这些答案主要是用户正在做什么或“为什么”相关问题的替代方案包含文件时,它包含的代码将继承包含文件所在行的变量范围。从该点开始,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局作用域。“tldr:您可以包含一个包含函数和类的文件,但如果您只是执行类似于$cat='cat'的操作
则该变量仅在该函数的范围内。毫无疑问,有更明智的方法来解决您试图解决的任何问题,这实际上看起来像是一个即将发生的事故。XY问题:@fvu I有无数日志错误,表示当函数被要求时它不存在。此功能用于确保包含
实际包含。