Jer*_*Gwa 11 php oop class require
根据我的理解,需要将代码粘贴到调用的php文件中.
如果你需要从方法内部...它会将整个代码/类粘贴到方法中,阻塞方法中的下一个语句.
例如.
function test() {
require 'pathtosomeclasscode';
somestatement; // any code after the require is blocked.
}
Run Code Online (Sandbox Code Playgroud)
我如何解决这个问题,能够在任何地方都需要代码,而不是将其粘贴在那个确切的位置?
tim*_*dev 19
有点令人惊讶的是,这似乎工作得很好.包含的代码将在Baz :: bork()的范围内执行 - 但代码只是定义了一个类,而类是全局的.所以你最终得到了一个定义的类.
文件:Foo.php:
<?PHP
class Foo{
function bar(){
echo "Hello from Foo::bar()!\n";
}
}
Run Code Online (Sandbox Code Playgroud)
文件:Baz.php:
<?PHP
class Baz{
function bork(){
require_once "Foo.php";
$f = new Foo();
$f->bar();
}
}
echo "testing internal definition:\n";
$b = new Baz();
$b->bork();
echo "\ntesting in global scope:\n";
$f = new Foo();
$f->bar();
echo "\nall done\n";
Run Code Online (Sandbox Code Playgroud)
输出:
$ php Baz.php
testing internal definition:
Hello from Foo::bar()!
testing in global scope:
Hello from Foo::bar()!
all done
Run Code Online (Sandbox Code Playgroud)
现在,我想不出很多你想用这种方式做事的地方.人们通常require_once()在类定义之外的类文件顶部的任何可能的依赖项.
调用require,require_once,include或include_once 不会在函数中停止代码的执行,除非有附带的脚本问题.包含文件中的代码在与函数相同的范围内执行(定义的函数和类是全局的),不插入其中,替换其他内容.
其他答案建议使用其中一种替代方案require作为解决方案 - 如果脚本中的错误与命名冲突有关(即尝试重新定义类或函数),这些解决方案可能对您有用,否则您可能希望向我们提供更多有关已发生(或未发生)的详细信息,以使您认为存在问题,以便我们可以帮助您解决真正的原因.
另请注意,这些文件包含方法不会将代码粘贴到脚本中.粘贴是人们用来维护文本的工具.我建议你阅读PHP手册,试着进一步理解这些功能是如何工作的:
如果你在调查后对他们的工作有进一步的问题,请再次发布.
| 归档时间: |
|
| 查看次数: |
38938 次 |
| 最近记录: |