Tôi thích tạo các hàm PHP bằng cách sử dụng các cặp key => giá trị (mảng) làm đối số thay vì các tham số riêng lẻ.Các đối số hàm PHP - Sử dụng một mảng hay không?
Ví dụ, tôi thích:
function useless_func($params) {
if (!isset($params['text'])) { $params['text'] = "default text"; }
if (!isset($params['text2'])) { $params['text2'] = "default text2"; }
if (!isset($params['text3'])) { $params['text3'] = "default text3"; }
echo $params['text'].$params['text2'].$params['text3'];
return;
}
Và tôi không thích: những điều
function useless_func($text = "default text", $text2 = "default text2", $text3 = "default text3") {
echo $text.$text2.$text3;
return;
}
tôi đã nhìn thấy đầu tiên thực hiện theo cách này rộng rãi trong codebase Wordpress.
Lý do tôi thích mảng:
- luận Chức năng có thể được cung cấp trong bất kỳ thứ tự
- dễ dàng hơn để đọc mã/nhiều tự chủ tài liệu (theo ý kiến của tôi)
- Ít dễ bị lỗi, bởi vì khi gọi một hàm Tôi phải điều tra các khóa mảng phù hợp
Tôi đang thảo luận điều này với một đồng nghiệp và nói rằng nó vô dụng và chỉ dẫn đến mã phụ và khó hơn nhiều để đặt giá trị mặc định. Về cơ bản, anh ấy không đồng ý với tôi hoàn toàn về cả ba điểm.
Tôi đang tìm một số lời khuyên và hướng dẫn chung từ các chuyên gia có thể cung cấp thông tin chi tiết: Cách tốt hơn hoặc phù hợp hơn để thực hiện việc này là gì?
Tôi không hiểu tại sao mọi người lại chống lại nó theo cách bạn đã đề cập. Tôi nghĩ đó là cách linh hoạt, ngay cả khi ai đó đang làm việc với chức năng của bạn. Tôi đang phát triển một khung công tác có raw_queries và một vài nhiều thứ hơn.Và khả năng phân tích một mảng các tham số làm cho nó rất linh hoạt. – DaAmidza