class a {
function __construct () {
$obj = new b();
echo $obj->sum();
}
}
class b {
function sum () {
return 3+4;
}
}
$obj_a = new a();
这段代码有效,但我感兴趣的是这段代码多少合理?那就是:第一次是写了一个班级,在他里面我们称之为班级b,但是班级b是在一个班级后写的。在这个例子中,wille是更好的方法写入b之前的一个?还是没感觉?
答案 0 :(得分:4)
不,源文件中定义两个类的顺序无关紧要。只要两者都在同一个文件中定义,您就可以随意移动它们。
如果类没有在同一个文件中定义,那么事情can get a little more complicated,但不会影响这种代码。
答案 1 :(得分:2)
该特定代码包含我们称之为“魔法”的元素。你无法从代码本身推断它需要定义b
类。
遵循的一般规则是,您不应该提前了解您的代码所做的事情。
所以从那个意义上讲,是的。类b
应该(应该,PHP不关心,仅为了可读性目的)首先定义,然后是类a
,然后是对象调用。
答案 2 :(得分:1)
您不必撤销订单。 PHP在运行之前编译代码。
答案 3 :(得分:0)
将类放在文件中的顺序无关紧要。对于放置在不同文件中的课程,请查看this answer。
答案 4 :(得分:0)
当我们运行文件时,它正在搜索第一个执行行,这行是
$obj_a = new a();
它不依赖于类或函数初始化。因此,按照任何顺序,您的代码都可以正常工作。