post-image

Sử dụng include và require

Tổng quan

Câu lệnh include (hoặc require) được sử dụng để nhúng toàn bộ nội dung của một file vào trong một file khác. Chúng thường được sử dụng trong trường hợp chúng ta muốn chia sẻ một đoạn mã nào đó chung cho nhiều file khác nhau. Chẳng hạn, phần footer trong ứng dụng web thường là giống nhau ở trong tất cả các trang. Do vậy, chúng ta tạo một file footer.php và sử dụng include (hoặc require) để nhúng file này vào phần cuối của tất cả các trang mong muốn.

Câu lệnh include và require

Câu lệnh include và require có chức năng giống nhau, ngoại trừ cách xử lý lỗi. Nếu không tìm thấy file muốn nhúng vào thì:

  • Câu lệnh require sẽ tung ra thông báo lỗi nghiêm trọng (E_COMPILE_ERROR) và dừng thực thi trang hiện tại
  • Câu lệnh include sẽ tung ra một cảnh báo (E_WARNING) và tiếp tục thực thi trang hiện tại.

Như vậy, nếu chúng ta muốn thực thi tiếp tục và hiển thị kết quả cho người dùng, ngay cả khi tập tin được nhúng không tồn tại thì chúng ta sử dụng lệnh include.

Còn trong trường hợp file được nhúng là một file quan trọng (chẳng hạn là chứa các hàm xử lý quan trọng, không thể thiếu) thì chúng ta sử dụng câu lệnh require.

Cú pháp

include 'tên_tệp_tin';

require 'tên_tệp_tin';

Ví dụ

Ví dụ 1: Giả sử chúng ta có một tệp tin quy định phần footer của trang web là “footer.php” với nội dung như sau:

<?php
    echo "<p>Copyright © 2017" . " CodeGym.vn</p>";
?>

Chúng ta nhúng file chứa footer này vào một trang khác (chẳng hạn là index.php) sử dụng câu lệnh include:

<html>
    <body>
        <h1>Welcome to my home page!</h1>
        <p>Some text.</p>
        <p>Some more text.</p>
        <?php
             include 'footer.php';        ?>
    </body>
</html>

Ví dụ 2: Giả sử chúng ta có một tệp tin quy định menu chính của các trang web là “menu.php” với nội dung như sau:

<?php
    echo "<a href='/default.asp'>Home</a> - 
         <a href='/html/default.asp'>HTML Tutorial</a> - 
         <a href='/css/default.asp'>CSS Tutorial</a> - 
         <a href='/js/default.asp'>JavaScript Tutorial</a> -          
         <a href='default.asp'>PHP Tutorial</a>";
?>

Tất cả các trang khác đều có thể sử dụng tệp menu này, chẳng hạn:

<html>
    <body>
        <div class="menu">
            <?php include 'menu.php';?>
        </div>
        <h1>Welcome to my home page!</h1>
        <p>Some text.</p>
        <p>Some more text.</p>
    </body>
</html>

Ví dụ 3: Giả sử chúng ta có một tệp tin “vars.php” chứa khai báo của một số biến như sau:

<?php
    $color='red';
    $car='BMW';
?>

Khi chúng ta nhúng file vars.php vào trong các trang khác thì chúng ta cũng có thể sử dụng các biến này:

<html>
    <body>
        <h1>Welcome to my home page!</h1>
        <?php
             include 'vars.php';
            echo "I have a $color $car.";
        ?>
    </body>
</html>

So sánh include và require

Cả hai câu lệnh này đều được sử dụng để chèn một file PHP vào một file khác. Tuy nhiên, có một sự khác biệt giữa include và require khi xảy ra lỗi trong file được nhúng (chẳng hạn là file này không tồn tại hoặc không truy xuất được).

Chẳng hạn, trong ví dụ sau file noneExistFile.php không tồn tại. Nếu chúng ta nhúng file noneExistFile.php vào trong một file khác, sử dụng câu lệnh include thì kết quả trang này vẫn được thực thi bình thường.

<html>
    <body>
        <h1>Welcome to my home page!</h1>
        <?php
             include 'noneExistFile.php';
            echo "No error. Executed.";
        ?>
    </body>
</html>

Nhưng nếu chúng ta thay include bằng require thì sẽ có lỗi xuất hiện và trang hiện tại sẽ không được tiếp tục thực thi:

<html>
    <body>
        <h1>Welcome to my home page!</h1>
        <?php
             require 'noneExistFile.php';
             echo "With error. Not executed.";
        ?>
    </body>
</html> 

Leave a Reply

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