这可能看起来像一个愚蠢的问题但是,在同一个文件中初始化类或调用其中一个函数是一个好习惯吗?我的意思是这样的:
<?php
class MyClass {
public function __construct($param) {
}
public static function MyFunction() {
}
}
$Obj = new MyClass('hello');
MyClass::MyFunction();
?>
这很好用,但从功能和可访问性的角度来看,我认为这是一个很好的做法。
答案 0 :(得分:3)
不,这不是好习惯。 The PSR甚至将其编入第三点:
文件应该声明符号(类,函数,常量等)或引起副作用(例如生成输出,更改.ini设置等),但不应该同时执行这两种操作。
创建变量,类实例和调用代码是一种“副作用”。如果您从不同的地方多次包含文件,或者只是通过在当前范围内隐式创建变量而无法避免这种情况,这将导致问题。
答案 1 :(得分:1)
这不是一个好方法,最好在适当的命名空间中在自己的文件中定义类,并使用自动加载更好地加载类。阅读有关自动加载和作曲家的信息,这是一种更简洁的方式来组织您的项目。
答案 2 :(得分:0)
没有。 :)
如果您想使用基于类的继承,您应该坚持使用单独的文件来定义类的编码标准。您应该有一个MyClass.php文件,只声明该类,而不是其他任何内容。将此文件包含在另一个php脚本中并在那里实例化该类。
然而: 你现在写的方式是af,如果你对这个课不感兴趣,而只是一个对象。为什么使用基于类的继承而不是原型继承。在原型继承中,你声明了一个普通的对象并且将它打扮成“对象”。有属性和方法:
$Obj = (object)[ 'property' => 'value'];
$Obj->method = function() { ... };