Hàm (Functions) trong PHP

0
0
(0)

Hàm (Functions) trong PHP

 

Không thể không nói đến hàm trong việc lập trình, nhờ có nó mà chương trình của chúng ta trở nên dễ dàng tổ chức hơn. Như các ngôn ngữ khác, PHP có khả năng cung cấp những hàm do người dùng tự định nghĩa. Đồng thời, PHP cũng có một số cải tiến để việc viết hàm được dễ chịu và mạnh mẽ hơn.

Định nghĩa và gọi hàm

Rất dễ để định nghĩa một hàm trong PHP:

PHP Code:

   function tên_hàm([các tham số truyền vào …]) 
   
     [thân hàm …] 
   } 

?>

– Từ khoá function báo cho PHP biết rằng đây là một hàm. Tiếp theo đó là tên hàm. Tên hàm của PHP có thể là bất cứ ký tự Unicode gì (kể cả tiếng Việt, tiếng Trung…, nhưng không được phép bắt đầu bằng số). Thật sự mạnh mẽ, nhưng bạn sẽ gặp vấn đề khi lưu file đó. Thôi thì cứ đặt tên không dấu là ổn nhất Description: http://www.updatesofts.com/forums/images/smilies/1.gif. Ví dụ:

PHP Code:


function this_is_một_hàm() 
  
    echo "Hoàn toàn hợp lệ !!!"
  } 
?>

– Sau tên hàm là danh sách tham số truyền vào và phần thân hàm. Phần thân hàm phải bắt đầu và kết thúc bằng cặp dấu { }. Phần thân này được thực thi khi tên hàm đựơc gọi.

– Chú ý: mỗi tên hàm chỉ được định nghĩa một lần. Với một số ngôn ngữ khác, hàm có thể được gọi đè khi danh sách tham số truyền vào là khác nhau (Java chẳng hạn), nhưng PHP thì không có việc đó.

Gọi hàm cũng khá dễ. Bạn chỉ việc gọi tên hàm cùng danh sách tham số đi kèm. Hay hơn, việc gọi hàm KHÔNG PHÂN BIỆT CHỮ HOA-CHỮ THƯỜNG. Tuy nhiên, khuyến cáo là nên gọi hàm theo đúng tên hàm đã đặt, như thế dễ quản lý hơn.

PHP Code:

  generate_left_menu_bar(); 
  GeNeRaTe_LeFt_MEnu_BaR();  // cũng được, nhưng không nên dùng !!! 
  process_user_information($current_user"new user"65.0); 
  generate_copyright_notices(); 
  generate_left_menu_bar;    // Sai !! Vì không có dấu ()!! 

?>

Chú ý ví dụ trên, khi gọi tên hàm, luôn phải có cặp dấu ( ) nếu hàm không nhận tham số nào (còn nếu nhận tham số thì tất nhiên cặp dấu đó để chứa tham số rồi, phải không Description: http://www.updatesofts.com/forums/images/smilies/8.gif).

Ngừng việc thực thi hàm
– Vào bất cứ thời điểm nào trong quá trình thực thi hàm, bạn cũng đều có thể dừng công việc của hàm bằng từ khoá return.

PHP Code:

  function work_work_work() 
  { 
    $dow date('l'); 

    if ($dow == 'Saturday' or $dow == 'Sunday'
    { 
      // nghỉ việc vào cuối tuần 
      return; 
    } 

    // work hard 
    work_harder(); 
  } 

?>

– Khi mà hàm work_work_work được gọi vào thứ 7 hoặc Chủ nhật, nó trả về "không gì cả", còn nếu không, nó trả về giá trị "làm việc chăm chỉ hơn đi !!" (Ví dụ chỉ mang tính minh họa Description: http://www.updatesofts.com/forums/images/smilies/36.gif).

Đưa tham số vào hàm

– Ví dụ cho một cấu trúc cơ bản:

PHP Code:

  function my_new_function($param1$param2$param3$param4
  { 
    echo <<
      You passed in: 
 

      \$param1:  $param1 
 

      \$param2:  $param2 
 

      \$param3:  $param3 
 

      \$param4:  $param4 
 

DONE; 
  } 

?>

– Khi đưa một số tham số vào hàm, bạn phải phân cách chúng bằng dấu phẩy (,). Bạn có thể truyền bất kỳ tham số nào vào hàm, bất kể là biến, hằng số.. hoặc thậm chí là một hàm khác:

PHP Code:

  // gọi hàm với nhiều loại tham số truyền vào 
  my_new_function($userName6.22e23pi(), $a or $b); 

?>

Giá trị trả về của hàm

– Thông thường, người ta lập trình hàm chỉ để xử lý một công việc nhất định mang tính lặp lại, và giá trị trả về của hàm là không có (null). Nhưng không hẵng tất cả mọi trường hợp đều như vậy:

PHP Code:

  function is_even_number($number
  { 
    if (($number 2) == 0
      return TRUE
    else 
      return FALSE
  } 

?>

-> Hàm trên có giá trị trả về là một giá trị boolean True hoặc False. 

Lời kết:
Hàm là một công cụ rất mạnh trong PHP. Việc sử dụng hàm không chỉ để tối ưu các đoạn code, nó còn làm cho chương trình dễ đọc hơn và thích hợp để làm trong một nhóm với nhau.

Chúc bạn thành công,
iSheep Description: http://www.updatesofts.com/forums/images/smilies/8.gif(UDS)

 

 

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Leave A Reply

Your email address will not be published.