Có một số yêu cầu cơ bản đối với các ngôn ngữ lập trình như là: Cần một nơi để lưu trữ data, quản lý flow program, đánh giá biểu thức, quản lý file, và text output … Vv. Và PHP có đáp ứng được tất cả những thứ này, cộng thêm nó có support các câu lệnh như else hay elseif giúp ta điều khiển program một cách dễ dàng. Tuy nhiên, ngay cả khi ta dùng những thứ này thì việc lập trình vẫn sẽ trở nên khá tốn công và buồn chán, đặc biệt khi bạn phải viết lại các đoạn code giống nhau mỗi khi cần dùng chúng. Đó là lý do, người ta tạo ra các khái niệm về functions và objects. Và có thể bạn đã biết, thì function là một tập hợp các câu lệnh thực hiện một chức năng cụ thể, và return về một value tùy ý. Bạn có thể đặt một đoạn code – cần sử dụng nhiều lần vào trong một function và gọi function đó theo tên khi cần dùng tới nó. Functions có rất nhiều ưu điểm so với inline code. Ví dụ như:

Gõ ít code hơnGiảm lỗi liên quan tới cú syntax và các lỗi lập trình khácGiảm thời gian load của program filesGiảm thời gian thực thi, vì mỗi function chỉ biên dịch một lần, bất kể bạn gọi hàm đó nhiều như thế nàoCó thể truyền vào function các arguments, cho nên ta có thể tái sử dụng trong nhiều trường hợp khác nhau

Ngoài ra, một object kết hợp với một hay nhiều funtion, và dữ liệu chúng sử dụng trong một cấu trúc duy nhất gọi là một class. Trong loạt bài viết này, ta sẽ tìm hiểu về cách sử dụng function, từ việc define nó, đến việc gọi nó ra để truyền các đối số. Với các kiến thức này, ta có thể bắt đầu tạo các function và sử dụng nó cho các object của chúng ta. (ta gọi đây là các methods.)

Tips: Hiện nay, có rất nhiều version PHP khác nhau. Nhưng tôi khuyên bạn nên sử dụng PHP version 5.6 trở lên, để bạn có thể dễ dàng folow theo những bài viết này.Bạn đang xem: Return nhiều giá trị trong php

PHP Functions

PHP có hàng trăm các functions được tích hợp sẵn, làm nó trở thành một ngôn ngữ rất tiện ích và phong phú. Để sử dụng function, hãy gọi nó ra thông qua tên. Ví dụ, bạn có thể xem function date dưới đây: echo date(“l”); // Hiển thị ngày trong tuần Dấu ngoặc đơn ở trên sẽ nói cho PHP biết rằng, bạn đang tham chiếu tới một function. Nếu không có, PHP sẽ nghĩ rằng bạn đang tham chiếu tới một contant.Một function có thể không nhận vào bất kỳ argument nào. Ví dụ, function phpinfo dưới đây hiển thị rất nhiều thông tin về cài đặt của PHP hiện tại, nhưng không yêu cầu argument. phpinfo();

*

Tips: function phpinfo cực kỳ hữu ích để ta biết được thông tin về các cài đặt PHP hiện tại, nhưng nó cũng có thể rất hữu ích đối với các hacker. Do đó, đừng bao giờ để lại đoạn function này trong các đoạn code của bạn.

Đang xem: Return nhiều giá trị trong php

Ta có thể tiếp tục xem một số function tích hợp sẵn, yêu cầu một hay nhiều argument đầu vào như dưới đây:

echo strrev(” .dlrow olleH”); // Reverse string echo str_repeat(“Hip “, 2); // Repeat string echo strtoupper(“hooray!”); // String to upper case?>Ví dụ trên đã sử dụng 3 string function để ouput ra đoạn text dưới đây: Hello world. Hip Hip HOORAY! Ta thấy rằng, funtion strrev sẽ đảo ngược thứ tự các ký tự trong string, function str_repeat sẽ lặp lại string “Hip ” 2 lần (theo yêu cầu của argument thứ 2). Và function strtoupper sẽ chuyển đổi “hooray!” thành chữ viết hoa.

Defining a Function

Cú pháp chung cho việc define một function như sau:

function function_name(>) { // Statements }Ý nghĩa của dòng đầu tiên như sau:

Define một function sẽ bắt đầu bằng từ khóa functionTên hàm theo sau phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới, và theo sau đó là chữ cái, số, hoặc dấu gạch dưới.Bắt buộc phải có dấu ngoặc đơn đi kèmCác tham số của hàm được phân tách bằng dấu phẩy

Ngoài ra, tên function sẽ không phân biệt chữ hoa – thường, vì vậy tất cả các string sau đều tham chiếu tới print function: PRINT, Print, và PrInT. Các câu lệnh của function sẽ được viết trong cặp dấu ngoặc nhọn mở – đóng, các cấu lệnh này có thể bao gồm một hay nhiều lệnh return, lệnh return sẽ ép buộc dừng thực thi và thực hiện trả về giá trị yêu cầu.

Xem thêm: Món Ngon Cuối Tuần: Cá Chìa Vôi Nướng Siêu Ngon, Cá Chìa Vôi Nướng Muối Ớt Cuốn Lá Cải Xanh

Returning a Value

Ta cùng nhau xem một function đơn giản dưới đây giúp convert fullname của peron thành lowercase và thực hiện viết hoa chữ cái đầu tiên. Ở phần trên, ta đã làm quen với function strtoupper được tích hợp sẵn của PHP. Sau đây ta sẽ sử dụng một function tương tự đó là strtolower:

$lowered = strtolower(“aNY # of Letters and Punctuation you WANT”);echo $lowered;Ta có output như sau: any # of letters and punctuation you want Tuy nhiên, tôi không muốn tất cả các ký tự đều là chữ thường, tôi muốn viết hoa chữ cái đầu tiên. May mắn là trong PHP cũng có cung cấp một function tên là ucfirst giúp chuyển đổi ký tự đầu tiên string thành chữ in hoa:

$ucfixed = ucfirst(“any # of letters and punctuation you want”);echo $ucfixed;Ta có output như sau: Any # of letters and punctuation you want Giờ ta có thể thực hiện thiết kế một program đơn giản đầu tiên: đó là, để có được một từ viết hoa chữ cái đầu tiên, ta sẽ gọi strtolower trước, sau đó tiếp tục gọi ucfirst. Cách để thực hiện điều này đó là ta lồng function strtolower trong ucfirst. Điều quan trọng là ta phải chú ý đến thứ tự thực thi của biểu thức. Trước hết, ta thử thực hiện gọi tới function như sau: print(5-8); Ở trên, biểu thức 5 – 8 sẽ được thực thi trước, và ta có ouput là -3. (Ở đây, PHP sẽ convert kết quả thành một string và hiển thị nó ra màn hình). Và nếu biểu thức này bao gồm một function khác bên trong, thì function này sẽ được thực thi trước: print(abs(5-8)); Trong biểu thức trên, PHP đã thực hiện một số việc theo trình tự như sau:

Thực hiện phép tính 5 – 8 để trả về giá trị là -3Dùng function abs để biến đổi – 3 thành 3Convert kết quả thành string và ouput ra bằng function print

Tóm lại, PHP đã thực thi biểu thức từ trong ra ngoài. Và biểu thức dưới đây cũng hoạt động theo trình tự tương tự: ucfirst(strtolower(“aNY # of Letters and Punctuation you WANT”)) Ở đây, PHP sẽ gọi tới strtolower trước, sau đó gọi tới ucfirst function, ta được output như sau: Any # of letters and punctuation you want Ở ví dụ tiếp theo dưới đây, ta sẽ define một function có 3 đối số names, mỗi name là chữ thường có ký tự đầu tiên viết hoa.

echo fix_names(“WILLIAM”, “henry”, “gatES”); function fix_names($n1, $n2, $n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); return $n1 . ” ” . $n2 . ” ” . $n3; }?>Ta thu được output như sau: William Henry Gates

Returning an Array

Trước version PHP 5.3, ta có thể mở đầu một biến bằng ký tự & tại thời điểm gọi funcion (ví dụ, increment(&$myvar);) để yêu cầu trình phân tích truyền một tham chiếu tới biến, chứ không phải giá trị của biến. Điều này đã cho phép một function truy cập vào biến (cho phép các giá trị khác nhau được ghi ngược lại vào nó)

Tips: Kiểu truyền tham chiếu theo thời gian gọi này đã không được dùng trong PHP 5.3 và được xóa bỏ hoàn toàn ở PHP 5.4. Do đó, bạn không nên dùng tính năng này ngoại trừ những trang web cũ. Lời khuyên là, bạn nên viết lại code mà đã dùng theo kiểu truyền tham chiếu này, bởi vì nó sẽ gặp phải lỗi cực kỳ nghiêm trọng ở các phiên bản PHP mới hơn.

Xem thêm: Những Bài Thuốc Dân Gian Chữa Viêm Tuyến Nước Bọt, Bài Thuốc Chữa Bệnh Viêm Tuyến Nước Bọt

Tuy nhiên, trong chỗ định nghĩa function, bạn vẫn có thể tiếp tục truy cập các đối số thông qua tham chiếu. Khái niệm này có thể hơi khó hiểu chút, do đó ta sẽ cùng quay lại với ví dụ về hộp diêm ở các bài viết trước. Hãy tưởng tượng rằng, thay vì lấy một mảnh giấy ra khỏi hộp diêm, đọc nó, copy những gì trong nó sang một mảnh giấy khác, đặt bản gốc quay trở lại hộp, và truyền bản copy đó tới một function. Thì ta có một cách đơn giản hơn đó là đính kèm một sợi chỉ vào mảnh giấy ban đầu, và truyền đầu còn lại tới functoin.

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *