php - 为什么配置数组在 PHP 和 Javascript 中是可接受的参数?

标签 php javascript parameters

在大多数其他面向对象语言中。让每个函数接收一个对象的关联数组而不是在方法签名中枚举每个对象是一种亵渎。但是,为什么这两种语言在大多数流行的框架中都可以接受并普遍使用它来执行此操作?

除了希望拥有简洁的方法签名之外,还有其他理由吗?

我确实看到了这样做的好处——API 可以在添加新的可选参数时保持不变。但是 Javascript 和 PHP 已经允许在它们的方法签名中使用可选参数。如果有的话,Java 或其他 OO 语言似乎会从中受益更多……但我很少在那里看到这种模式。

什么给了?

最佳答案

在我看来,这些函数中的很多都在增加它们接受的参数数量,超过 10 个并不少见。即使你做可选参数,你仍然必须按顺序发送。

考虑这样一个函数:

function myFunc(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13){
    //...
}

假设您只想使用参数 3 和 11。这是您的代码:

myFunc(null, null, null, 'hello', null, null, null, null, null, null, null, 'world');

难道你不想:

myFunc({
    a3 : 'hello', 
    a11 : 'world' 
});

?

关于php - 为什么配置数组在 PHP 和 Javascript 中是可接受的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676996/

相关文章:

javascript - 我的 ng-repeat 仅按字母顺序工作 |angularJS

javascript - 在 JavaScript 中编码为字母数字

php - 在 for 循环中设置乘法参数

c++ - 什么标准调用实际上是宏

方法签名上的 C# 参数不会破坏重写/实现

php - 使 Facebook 访问 token 无效?

php - 当 SQL 查询有别名时获取列值

php - 警告 : fopen() [function. fopen]:文件名不能为空

php - 带有空文件的 file_get_contents 无法正常工作 PHP

javascript - 如何在时间流逝时增加震动效果的强度