Php 函数参数约定
如果我有一个有几十个参数的函数,可以使用变量名作为指导吗 例如:Php 函数参数约定,php,function,variable-assignment,Php,Function,Variable Assignment,如果我有一个有几十个参数的函数,可以使用变量名作为指导吗 例如: public function addUser($user,$employeeno,$streetno,$street,$city,$state, $zip,$mobileno,$officeno,$email,$password,$division,$something, $something_else,$another_thing,$one_more) { } 要添加用户,如果我执行以下操作
public function addUser($user,$employeeno,$streetno,$street,$city,$state,
$zip,$mobileno,$officeno,$email,$password,$division,$something,
$something_else,$another_thing,$one_more) {
}
要添加用户,如果我执行以下操作是否会有问题:
.... addUser($user = 'hello', $empno = '123456', $streetno = '123',
$street = 'Stack Overflow Avenue', $city = 'Stack City',
$state = 'SC', $zip = 99999, $mob = '1234567890' // ... and so on
我试过了,它成功了,但是我应该知道什么含义吗?在我五年多的PHP经验中,我从未在其他人开发的示例代码和系统中遇到过这种情况。如果可靠,这将允许我跟踪传递函数或方法的信息。没有问题,您当然可以有任意多的参数。当然,当它们被正确命名时,你的生活会变得更轻松 当你忘记了顺序,或者更糟糕的是想修改它时,麻烦就会出现——因为你需要在使用该函数的任何地方进行更改,所以很难维护它
public function register(User $user)
{
// Save the users data
}
但是,您可以创建用户
类:
class User
{
protected $username;
protected $employeeNumber;
protected $streetNumber;
public function getUsername();
public function setUsername($username);
public function setEmployeeNumber($number);
}
然后在客户端代码中:
$user = new User();
$user->setUsername($user);
$user->setEmployeeNumber($employeeno);
//....
然后在register()
函数中键入hint
public function register(User $user)
{
// Save the users data
}
最终结果是,用户的所有数据都被用户类封装,因此任何更改都不需要对
register
函数进行任何进一步修改。如果要继续使用函数编码,可以始终使用数组
public function register(User $user)
{
// Save the users data
}
$data = array("user" => "hello", "employeeno" => 123456, "streetno" => 123, "street" => "Stack Overflow Avenue"); // etc...
addUser($data);
或者,如果您想要更易于阅读的版本:
$data['user'] = "hello";
$data['employeeno'] = 123456;
$data['streetno'] = 123;
$data['street'] = "Stack Overflow Avenue";
addUser($data);
或者清理第一个版本:
$data = array("user" => "hello",
"employeeno" => 123456,
"streetno" => 123,
"street" => "Stack Overflow Avenue"); // etc...
addUser($data);