Вы не можете действительно проверить, были ли переменные переданы в функцию или нет, вы можете только проверить их значение. Если значение равно falsey , вы можете отклонить его. Это не обязательно означает, что переменная не была передана, просто значение было falsey .
if (!$username || !$password || !$fname || !$lname)
Чтобы еще больше ограничить его и принять, например, пустые строки и 0 в качестве допустимых значений, сделайте что-то вроде:
public function insertMember($username = null, $password = null, $fname = null, $lname = null) {
if ($username === null || $password === null || $fname === null || $lname === null)
Наилучшим способом может быть принятие массива, который вы можете явно проверить на наличие ключей независимо от их значений:
public function insertMember($values) {
if (array_diff_key(array_flip(array('username', 'password', 'fname', 'lname')), $values)) {
// not all keys were set!
}
Независимо от этого:
$param = array();
$param['username'] = $username;
$param['password'] = $password;
$param['fname'] = $fname;
$param['lname'] = $lname;
можно сократить до:
$params = compact('username', 'password', 'fname', 'lname');