Đối số mặc định trong PHP

Ghi chú. Bài đăng này đã hơn một năm tuổi và vì vậy thông tin ở đây có thể đã lỗi thời. Nếu bạn phát hiện ra điều gì đó, vui lòng để lại nhận xét và chúng tôi sẽ cố gắng khắc phục

  • Chia sẻ cái này
  • Tweet cái này đi
  • Chia sẻ cái này

Khi tạo các hàm trong PHP, có thể cung cấp các tham số mặc định để khi một tham số không được truyền vào hàm thì nó vẫn có sẵn trong hàm với giá trị được xác định trước. Các giá trị mặc định này cũng có thể được gọi là các tham số tùy chọn vì chúng không cần được chuyển đến hàm. Tôi đã thấy loại mã này được sử dụng không chính xác khá thường xuyên gần đây vì vậy tôi nghĩ rằng tôi sẽ xem xét nó trong một bài đăng

Việc tạo tham số mặc định trong hàm rất đơn giản và khá giống với phép gán biến thông thường. Hàm sau có một tham số duy nhất được đặt thành 1 nếu nó không được truyền khi gọi hàm

function testFunction[$a = 1]
{
    return $a;
}

Chức năng này không làm được gì nhiều, nhưng có thể được sử dụng theo cách sau. Nếu tham số không được thêm vào lệnh gọi hàm thì giá trị mặc định sẽ được sử dụng, nếu nó được thêm vào thì giá trị này sẽ được sử dụng thay thế

echo testFunction[]; // prints 1
echo testFunction[2]; // prints 2

Có thể sử dụng bao nhiêu đối số mặc định cần thiết trong một hàm. Hàm sau có bốn tham số, ba trong số đó là tùy chọn

function testFunction[$a, $b = 1, $c = 1, $d = 1]
{
    return $a + $b + $c + $d;
}

Chức năng này có thể được chạy theo cách sau

echo testFunction[1]; // prints 4
echo testFunction[1, 2]; // prints 5

Cũng có thể sử dụng mảng làm tham số mặc định như trong hàm sau

function testArrayFunction[$array = array['someKey']]
{
    if [isset[$array['someKey']]] {
        return $array['somekey'];
    }
}

Một điều quan trọng cần nhớ khi tạo các tham số mặc định là bạn nên thêm chúng vào cuối các tham số bắt buộc mà hàm của bạn có. Về mặt cú pháp, việc viết một hàm trong đó các tham số mặc định không nằm ở cuối định nghĩa hàm là hợp lệ, nhưng điều này sẽ dẫn đến các vấn đề. Thực hiện chức năng sau

function testMultiFunction[$a, $b = 1, $c, $d = 1]
{
    return $a + $b + $c + $d;
}

Không thể thực sự sử dụng bất kỳ tham số mặc định nào được đặt trước bất kỳ tham số không mặc định nào. Trong trường hợp đoạn mã trên $b sẽ không bao giờ có giá trị mặc định là 1. PHP không có cách nào để biết rằng bạn muốn bỏ qua một tham số cụ thể và do đó sẽ chỉ định chúng như mọi khi, theo thứ tự chúng được truyền. Cố gắng bỏ qua một trong các tham số sẽ dẫn đến lỗi cú pháp

echo testFunction[1, , 1]; // syntax error

Chỉ trong trường hợp một số bạn đang nghĩ rằng có thể chỉ cần thêm một giá trị null làm tham số, bạn nên lưu ý rằng điều này cũng sẽ không hoạt động. Về cơ bản, những gì bạn đang làm là truyền một giá trị [trong trường hợp này là null] và do đó, tham số mặc định sẽ không được sử dụng. Sử dụng hàm trên, đoạn mã sau sẽ in 3. Đây là kết quả của tổng 1 + null + 1 + 1, giá trị null chuyển thành 0 khi được sử dụng trong phép tính

echo testFunction[1, null, 1]; // prints 3

Các tham số mặc định có thể được sử dụng để điều khiển chức năng theo một cách nào đó. Giả sử bạn muốn tạo một hàm sẽ in ra một biến nếu hàm đó được yêu cầu làm như vậy. Để làm điều này, bạn sẽ tạo một tham số tùy chọn thứ hai sẽ in một giá trị đã cho nếu giá trị true được truyền vào

________số 8

Kiểu chức năng này có thể được nhìn thấy trong nhiều hệ thống CMS, thường là trong các chức năng mẫu và có thể chạy theo cách sau

testFunction[2, true]; // prints and returns 3
testFunction[2]; // returns 3
testFunction[2, false]; // returns 3

Lỗi mà tôi thường thấy nhất là khi các lập trình viên sao chép và dán định nghĩa hàm và sử dụng nó làm lệnh gọi chính hàm đó. Đoạn mã sau [hoàn toàn hợp pháp] gọi hàm ví dụ testMultiFunction[] ở trên

echo testFunction[]; // prints 1
echo testFunction[2]; // prints 2
0

Những gì chúng ta đang làm ở đây là xác định các biến $b, $c và $d là 1, sau đó các biến này được chuyển đến hàm dưới dạng tham số. Trong PHP, có thể chạy mã trong các lời gọi hàm, kết quả của nó sau đó được chuyển đến hàm. Tuy nhiên, điều này hơi lãng phí vì tất cả những gì chúng ta đang làm ở đây [và điều thường xảy ra] là xác định các biến không bao giờ được sử dụng sau lệnh gọi hàm này. Để dọn dẹp mã này, chỉ cần xóa các định nghĩa biến và giữ lại các giá trị mà bạn muốn chuyển đến hàm

echo testFunction[]; // prints 1
echo testFunction[2]; // prints 2
1

Điều này có cùng đầu ra như mã trước đó, nhưng nó là một cách rõ ràng hơn nhiều để gọi hàm. Nếu bạn lo lắng về việc không thể biết tham số nào làm gì thì hãy thêm nhận xét trước lệnh gọi hàm để cung cấp thêm thông tin cho bạn

PHP

  • Chia sẻ cái này
  • Tweet cái này đi
  • Chia sẻ cái này

Được viết bởi. Philip Norton

Phil là người sáng lập và quản trị viên của #. viết mã và là một chuyên gia CNTT làm việc ở Tây Bắc Vương quốc Anh. Tốt nghiệp năm 2003 tại Đại học Aberystwyth với bằng Thạc sĩ Khoa học Máy tính Phil trước đây đã từng làm quản trị viên cơ sở dữ liệu, trên bàn trợ giúp CNTT, huấn luyện viên hệ thống, kiến ​​trúc web, tư vấn khả năng sử dụng, blogger và chuyên gia SEO. Phil có nhiều kinh nghiệm xây dựng và duy trì các trang web PHP cũng như làm việc với các công nghệ liên quan như JavaScript, HTML, CSS, XML, Flex, Apache, MySQL và Linux

Bạn muốn biết thêm?

Hãy để chúng tôi giúp. Thuê chúng tôi để cung cấp dịch vụ đào tạo, tư vấn, xử lý sự cố và hơn thế nữa

hỗ trợ chúng tôi

Hãy ủng hộ chúng tôi và cho phép chúng tôi tiếp tục viết bài

Trở thành người bảo trợ

Mua cho tôi một ly cà phê

Bình luận

liên kết cố định

Tiếp tục gửi bài thứ như thế này tôi thực sự thích nó

robot ngoại hối [Thứ 4, 10/02/2010 - 04. 41]

liên kết cố định

Mã hóa tuyệt vời

sarah [Thứ Hai, 01/03/2011 - 19. 57]

liên kết cố định

Mới học PHP [mặc dù đã có kinh nghiệm với ngôn ngữ lập trình khác] và bài viết này thực sự đã giúp tôi nắm bắt cách PHP xử lý các tham số. Cảm ơn

Đó là đối số mặc định?

Đối số mặc định là giá trị được cung cấp trong phần khai báo hàm được trình biên dịch gán tự động nếu hàm gọi không cung cấp giá trị cho đối số. In case any value is passed, the default value is overridden.

Ví dụ đối số mặc định là gì?

Những điểm chính cần nhớ cho đối số mặc định . Ví dụ: gọi hàm sum[10, 15, 25, 30] tạo điều kiện ghi đè giá trị của z và w thành 25 và 30 tương ứng. The overwriting of arguments take place when the calling function provides values for them. For example, calling of function sum[10, 15, 25, 30] facilitates overwriting of the value of z and w to 25 and 30 respectively.

Đối số trong PHP với ví dụ là gì?

Đối số hàm PHP . Các đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu đối số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy. Ví dụ sau có một hàm với một đối số [$fname]. An argument is just like a variable. Arguments are specified after the function name, inside the parentheses. You can add as many arguments as you want, just separate them with a comma. The following example has a function with one argument [$fname].

Đối số mặc định và liên tục là gì?

Các đặc điểm để xác định đối số mặc định trong C++ . Chúng ta chỉ có thể sử dụng các giá trị này khi hàm được gọi mà không có đối số thích hợp. Mặt khác, các giá trị đã khai báo sẽ bị ghi đè bởi các giá trị đã truyền

Chủ Đề