Hỏi về tham số tự do trong hàm trong php

Mình thấy khi dùng Query Builder có trường hợp như thế này:

$items = DB::table('users')->where('email','=','[email protected]')->first();

Câu lệnh trên có thế viết gọn là:

$items = DB::table('users')->where('email', '[email protected]')->first();

Khi xem qua function where của thì nó trông giống như thế này:

public function where($column, $operator = null, $value = null, $boolean = 'and'){}

Giả sử như bây giờ mình có 1 hàm như thế này:

public function family($nameFather=null, $nameMother, $myName = null){ }

Liệu mình gọi hàm $this->family("Hue", "Kha") thì nó có pass đúng tham số không ạ?
Thực sự mình không thích cái kiểu gọi hàm như thế này: $this->family(null,"Hue","Kha");
Và mình cũng nghe người ta hay khuyên là “Đừng pass null vào hàm”. Mình cám ơn ạ!

Cứ param 1 là argument 1 thôi nên sẽ không đúng. Đến PHP8 mới có named argument :slight_smile:

2 Likes

Quy tắc là optional thì mang ra sau, vì param thứ 2 required thì chắc chắn phải truyền, mà muốn truyền param 2 thì hiển nhiên phải có param 1, = null cho param 1 là vô nghĩa

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?