Php 返回什么更好:null还是false?

Php 返回什么更好:null还是false?,php,function,null,Php,Function,Null,所以我有注册的功能: <?php function sign_up($login, $password, $email){ global $db; if(is_login_exist($login)){ return ['error' => 'Login already exists', 'result' => null]; } if(is_email_exist($email)){ return ['error' => 'Email alre

所以我有注册的功能:

<?php   

function sign_up($login, $password, $email){
global $db;

if(is_login_exist($login)){
    return ['error' => 'Login already exists', 'result' => null];
}

if(is_email_exist($email)){
    return ['error' => 'Email already exists', 'result' => null];
}

//hash password
$password = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);
$stmt = $db->prepare("INSERT INTO users (login, password, email) VALUES (?, ?, ?)");

//add check
$stmt->bind_param("sss", $login, $password, $email);
$stmt->execute();
$stmt->close();
return ['error' => null, 'result' => 'success']; 
}?>

因此,如果我在登录已经存在时遇到了错误,我将返回关联数组['error'=>'login ready exists','result'=>null]

问题:将“result”参数返回为null或false是否正确

我将返回:
状态=>'ok'/'error'
和可选的
'error\u message'=>'message'
'error\u code'=>0
,只要状态为error。但这只是我的观点

如果出现问题,我会抛出异常

function sign_up(mysqli $db, $login, $password, $email){
    // hash password
    $password = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);
    // try to insert
    $stmt = $db->prepare("INSERT INTO users (login, password, email) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $login, $password, $email);
    $stmt->execute();

    return true; 
}
要求:

  • mysqli设置为在出现错误时引发异常=>
    mysqli\u report()
  • login
    email
    字段上有一个
    UNIQUE
    约束