Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Bài 14 Các hàm do người dùng tự định nghĩa

    I. Xây dựng các hàm trong PHP



    Trong PHP, chúng ta có thể tự xây dựng các hàm của mình. Trước khi sử dụng, chúng ta cần phải tiến hành cài đặt hàm.

    Cú pháp cài đặt một hàm có thể được tóm tắt như sau:

    function ten_ham (thamso1, thamso2, ..., thamson)
    {
    // đoạn chương trình xử lý dữ liệu bên trong hàm
    return gia_tri;
    }

    Trong đó:

    - function là từ khóa,
    - ten_ham là tên hàm do chúng ta tự đặt. Tên hàm thường sử dụng các ký hiệu chữ cái, chữ số và dấu gạch dưới.
    - Các thamsoi là các tham số đưa vào. Các tham số khi khai báo thường ở dưới dạng các biến, còn khi sử dụng thì có thể là biến, hằng, hay một giá trị nào đó. Một hàm có thể không có hoặc có nhiều tham số.
    - Giá trị gia_tri sau từ khóa return là giá trị trả về sau khi gọi hàm. Giá trị này có thể là giá trị của một biến, hay một giá trị cụ thể nào đó.

    Ví dụ: Tôi xây dựng một hàm đơn giản để trả về dòng chữ "Xin chào":
    function chao()
    {
    return "<B>Xin chào</B>";
    }

    Ví dụ 2: Tôi đưa ra một hàm phức tạp hơn chút đỉnh: Khi xây dựng các ứng dụng liên quan đến CSDL, ta thường phải xuất dữ liệu ra một bảng nào đó.
    Một bảng trong HTML được cấu thành từ các cặp thẻ <table>, <tr>, <td> lồng vào nhau, ở mức độ nhỏ nhất của cấu trúc trên là một ô.
    Một ô có thể có chứa thông tin (nằm giữa các cặp thẻ <td></td>), có thể chứa các thuộc tính định dạng (style)... Việc ngồi gõ đi gõ lại mấy cái thẻ HTML đủ làm cho chúng ta phát chán.

    Ở đây tôi sẽ xây dựng một hàm để tự động sinh ra nội dung của một ô. Hàm này có 2 tham số đầu vào dạng chuỗi là nội dung và định dạng thẻ:

    <?
    function viet_o ($noidung,$dinhdang)
    {
    $td_tmp="<td " . $dinhdang . ">" . $noidung . "</td>";
    return $td_tmp;
    }
    ?>

    VD sử dụng hàm trên:
    <table>
    <tr>
    <?viet_o("STT","");?>
    <?viet_o("Họ tên","");?>
    <?viet_o("Ngày sinh","");?>
    </tr>
    <tr>
    <?viet_o("1","");?>
    <?viet_o("Lê Nguyên Sinh","");?>
    <?viet_o("01/04/2006","");?>
    </tr>
    <tr>
    <?viet_o("2","");?>
    <?viet_o("Thử một tí","");?>
    <?viet_o("01/01/2007","");?>
    </tr>
    </td>

    Chúng ta có thể mở rộng ra các hàm khác để xử lý cột, bảng. Hãy xem xét toàn bộ đoạn mã sau:

    <?
    function viet_o ($noidung,$dinhdang)
    {
    $td_tmp="<td " . $dinhdang . ">" . $noidung . "</td>";
    return $td_tmp;
    }

    function viet_cot ($noidung,$dinhdang)
    {
    $td_tmp="<tr " . $dinhdang . ">" . $noidung . "</tr>";
    return $td_tmp;
    }
    ?>

    <?
    function viet_bang ($noidung,$dinhdang)
    {
    $td_tmp="<table " . $dinhdang . ">" . $noidung . "</table>";
    return $td_tmp;
    }

    // Tạo một bảng tương tự ở trên nhưng dùng các hàm vừa xây dựng
    $noidung = viet_cot(viet_o("STT","") . viet_o("Họ tên","") . viet_o ("Ngày sinh",""),"");
    $noidung .=viet_cot(viet_o("1","") . viet_o("Lê Nguyên Sinh","") . viet_o ("01/04/2006",""),"");
    $noidung .=viet_cot(viet_o("2","") . viet_o("Thử một tí","") . viet_o ("01/01/2007",""),"");
    $noidung = viet_bang($noidung,"");
    echo $noidung;
    ?>

    Đoạn mã trên nhìn qua thì nó hơi dài, nhưng khi bạn xử lý với số lượng dữ liệu lớn thì nó sẽ trở nên ngắn gọn hơn nhiều, nhất là ta có thể dùng vòng lặp để duyệt qua các hàng của một bảng.
    II. Các tham số mặc định và các tham số tùy chọn


    Khi đưa các tham số vào hàm, chúng ta có thể thiết lập các tham số mặc định. Các tham số này được đặt giá trị ngay khi xây dựng hàm.

    Ví dụ:
    function viet_o ($noidung, $dinhdang="")
    {
    $td_tmp="<td " . $dinhdang . ">" . $noidung . "</td>";
    return $td_tmp;
    }

    Nếu các tham số mặc định được đặt hết ở bên phải của danh sách tham số, khi triệu gọi hàm, chúng ta có thể bỏ qua các tham số mặc định này. Tuy nhiên, nếu nó nằm giữa hay bên phải thì chúng ta không được phép bỏ qua. Trong trường hợp các tham số mặc định được đặt ở bên trái, chúng ta có thể coi chúng như là các tham số tùy chọn.

    Với ví dụ trên, ta có thể gọi hàm viet_o theo một trong hai cách sau:

    viet_o("Thử một tí","");
    họăc
    viet_o("Thử hai tí");//Trường hợp này tham số tùy chọn là tham số mặc định được đặt là rỗng ở phía bên phải của danh sách tham số.
    III. Phạm vi hoạt động của các biến trong và ngoài hàm


    Chú ý rằng khi ta sử dụng các biến bên trong hàm, mặc định, các biến đó được coi là biến cục bộ của hàm, chứ không phải là biến toàn cục của chương trình.

    Để thiết lập hoặc lấy giá trị của các biến toàn cục, chúng ta có thể sử dụng 1 trong 2 cách sau đây:
    Cách 1: Dùng khai báo GLOBAL để khai báo các biến toàn cục
    Cách 2: Sử dụng mảng $GLOBALS["tên_biến_toàn_cục"].

    Ví dụ:
    <?
    $x=1;
    $y=3;

    function cong ()
    {
    return $x+$y;
    }
    ?>

    Khi ta gọi hàm cong() ở trên sẽ cho ra kết quả bằng 0 (vì $x và $y lúc này được coi là biến cục bộ và có giá trị bằng 0.

    Để chương trình chạy đúng, ta phải làm như sau:

    Cách 1:

    <?
    $x=1;
    $y=3;

    function cong ()
    {
    GLOBAL $x, $y
    return $x+$y;
    }
    ?>

    Cách 2:
    <?
    $x=1;
    $y=3;

    function cong ()
    {
    return $GLOBALS["x"]+$GLOBALS["y"];
    }
    ?>

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP hỗ trợ người lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong website. Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang. Mà không cần phải khởi tạo hay viết lại mã lệnh như HTML thuần.

    1- Hàm tự định nghĩa:

    Cú pháp:

    function functiono_name()

    {

    //Lệnh thực thi

    }

    Tên hàm có thể là một tổ hợp bất kỳ những chứ cái, con số và dấu gạch dưới, nhưng phải bắt đầu từ chứ cái và dấu gạch dưới.

    Ví dụ:

    <?php

    function name()

    {

    $name= array("Kenny", "Jiro", "Calvin", "Gillian");

    foreach ($name as $test)

    { echo "$test"; }

    }

    name();

    ?>

    2- Hàm tự định nghĩa với các tham số:

    Cú pháp:

    function function_name($gt1,$gt2)

    {

    //Hành động

    }

    Ví dụ:

    <?php

    function indulieu($text)

    {

    echo "$text";

    }

    indulieu("welcome");

    indulieu("who are you ?");

    ?>

    3- Hàm tự định nghĩa với giá trị trả về:

    Cú pháp:

    function function_name(Có hoặc không có đối số)

    {

    //Thuc thi

    return giatri;

    }

    Ví dụ:

    <?php

    function tinhtong($a,$b)

    {

    $total=$a+$b;

    return $total;

    }

    echo tinhtong(19,31)

    ?>

    4-Gọi lại hàm trong PHP:

    PHP cung cấp nhiều hàm cho phép triệu gọi lại file. Như hàm include("URL đến file"), require("URL Đến file").

    Ngoài hai cú pháp trên còn có include_once(), require_once(). Hai hàm này cũng có trách nhiệm gọi lại hàm. Những chúng sẽ chỉ gọi lại duy nhất 1 lần mà thôi.

    Ví dụ:

    Tạo file top.html với nội dung:

    <html><head><title>Welcome to you</title></head>

    <body>

    <table border=1 width=700>

    <tr><td colspan=5 align=center>Banner</td></tr>

    <tr>

    <td align=center> Home </td>

    <td align=center> News </td>

    <td align=center> Music </td>

    <td align=center> Download</td>

    <td align=center> Contact</td></tr>

    Tạo file body.html với nội dung:

    <tr><td colspan=5 align=center>

    Noi dung website

    </td>

    </tr>

    Tạo file bottom.html với nội dung:

    <tr>

    <td colspan=5 align=center> Copyright@ abc.com</td>

    </tr>

    </table>

    </body>

    </html>

    Tạo trang index.php với nội dung:

    <?php

    include("top.html");

    include("body.html");

    include("bottom.html");

    ?>

    Tổng kết:

    Kết thúc bài học này, hẳn các bạn đã có những khái niệm cơ bản về hàm và cách sử dụng lại mã PHP. Trên ứng dụng thực tế việc dùng các hàm để triệu gọi đóng vai trò khá quan trọng, nó giúp mã nguồn của người sử dụng logic và dễ dàng chỉnh sửa hơn, việc ứng dụng nó trên website như thế nào cũng sẽ tùy biến hơn so với cách viết trực tiếp trên từng file.

    Bài tập áp dụng:

    1- Thiết kế website hoàn chỉnh bằng việc phân tách các file.

    2- Xây dựng website với yêu cầu sau. Cho phép người sử dụng chọn mua số lượng hàng. Với giá tương ứng với từng mặt hàng. Sau đó xuất tổng tiền(đã bao gồm thuế VAT 10%).

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •