如果我在两个文件中有两个类,A.php 和 B.php,如果 A.php 包含 require_once(B.php) 并且 A.php 还包含静态方法 do_thing(),那么 A::do_thing() 是否可用在 B.php 中,假设起点始终是 A.php,而 B.php 在 A.php 中始终是 require_once?除了这个关于 variables的问题之外,我似乎找不到任何相关问题,但如果这也适用于方法,则并不明显。
问问题
35 次
2 回答
1
简短的回答似乎是肯定的。假设:
一个.php
<?php
require_once('B.php');
class A{
public static function do_thing(){
echo "Things done!\n";
}
}
B.php
<?php
class B{
public function git_er_done(){
A::do_thing();
}
}
测试.php
<?
require_once('A.php');
$b = new B();
$b->git_er_done();
为了彻底,您还应该require_once('A.php');
在B.php中,因为这是依赖项所在的位置,并且鉴于您希望避免auto_loading
,避免假设加载发生在其他地方的危险是明智的。
于 2013-09-19T13:22:42.823 回答
1
是的,A::do_thing() 将在 B.php 中可用。例如,在下面,我们包含 B.php,它在声明之前调用 A() 函数并且它可以工作。PHP在执行前解析:
A.php:
<?php
include('B.php');
function A() {
echo 'A';
}
B.php:
<?php
A();
调用 A.php 脚本将输出:
一个
于 2013-09-19T13:24:36.007 回答