一.优秀的书写方法,适用于业务代码
$data = [
'username' => '优秀' ,
'password' => 'q123456' ,
];
function md5tt ( $password )
{
return md5 ( $password );
}
class test
{
//方法中 只做三件事情, 组数组,调方法,返回参数
public function login ( $data )
{
//验证器操作...
//组装数据存入数据库
$map = [
'username' => $data[ 'username' ] ?? false ,//可以用表达式
'password' => $this->md5Password ( $data[ 'password' ] ) ,//可以用方法
'password2' => md5tt ( $data[ 'password' ] ) ,//可以用函数
];
//模型调用...
}
public function md5Password ( $password )
{
return md5 ( $password );
}
}
二.不建议在业务代码中出现,适用于封装和抽象行代码
/**
* 出现业务代码会挨打的
* call_user_func 可以在匿名函数中写流程控制代码
* !!!写在业务代码,会被打!!!
* 不能用于业务代码,用于封装和抽象性代码
*/
$map= [
'username' => call_user_func ( function ( $username ) {
return $username;
} ) ,
'passwrod' => call_user_func ( function ( $password ) {
return md5 ( $password );
} ) ,
];