php - 编码标准 : Large amount of arguments

标签 php oop

嘿,我是一名大学毕业生。我正在从事一个我希望最终由其他人维护的项目。我在这个项目中一直遇到一个恼人的情况,那就是需要许多私有(private)变量的对象,因此构造函数非常长。

除了变量命名之外,没有强制执行任何编码标准。我想知道如何处理这样的事情。有时我担心我以后会在 dailywtf 上看到我自己的一些代码!

我想尝试将其中一些争论包含在其他类(class)中,但在这种情况下它真的没有意义。

这完全不是问题,还是应该并且很容易纠正的问题?

public function __construct($uCode = '', $uName = '', $uTime = '', $uArea = '', $uDomain = '', $uText = '', $uId = '', $uNum = '', $uVideo = 0, $uAudio = 0, $uImage = 0){

最佳答案

一般来说,如果参数超过 4 个,最好使用临时对象或数组。通常很多参数都是可选的,这会变得非常尴尬并且很快就会出错。所以:

class MyClass {
  public function __construct($options) { ... }
...
}

$o = new MyClass(array(
  'uCode' => 'some value',
  'uText' => 'another value',
));

比较一下:

$o = new MyClass('some value', '', '', '', '', 'another value');

注意数组版本如何仅包含您要传递的内容。

关于php - 编码标准 : Large amount of arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923760/

相关文章:

php - 如何抓取json数据并存入数据库

php - 有没有办法改变 cURL SSL session ID 过时的速率?

c# - 它不会返回类中的值

perl - 在 OOP Perl 程序中转换类型

oop - 为什么我们可以/不能将 OOP 概念同样多地应用到内核编程中?

php - 尝试通过将用户名/密码发送到 PHP 脚本来验证 iOS 中的用户身份

php - 安装 phabricator 时无法连接到 mysql

php - PDO 连接问题

c++ - 单例替代

c++ - 当函数调用退出并且函数在堆中生成类实例时,是否调用了析构函数?