Câu lệnh include và require trong PHP
Câu lệnh include
(hoặc require
) lấy tất cả văn bản / mã / thẻ trong file được chỉ định và sao chép nó vào file đã sử dụng câu lệnh include.
Câu lệnh include file rất hữu ích khi bạn muốn sử dụng cùng một tập lệnh PHP, mã HTML hoặc văn bản trên nhiều trang của một trang web.
Câu lệnh include và require trong PHP
Bạn có thể chèn nội dung của một file PHP vào một file PHP khác (trước khi máy chủ thực thi nó) bằng câu lệnh include
hoặc require
.
Câu lệnh include và require thì giống hệt nhau, chỉ khác khi xảy ra lỗi:
- Câu lệnh
require
sẽ tạo ra một lỗi nghiêm trọng (E_COMPILE_ERROR) và dừng tập lệnh. - Câu lệnh
include
sẽ chỉ tạo cảnh báo (E_WARNING) và tập lệnh sẽ tiếp tục.
Vì vậy, nếu bạn muốn tiếp tục thực thi và hiển thị cho người dùng đầu ra, ngay cả khi tệp được thêm vào bị thiếu, hãy sử dụng câu lệnh include
.
Ngược lại, trong trường hợp FrameWork, CMS hoặc viết những ứng dụng PHP phức tạp, hãy luôn sử dụng câu lệnh require
để đưa các tệp chính vào luồng thực thi.
Điều này sẽ giúp tránh ảnh hưởng đến tính bảo mật và tính toàn vẹn của ứng dụng của bạn, nhất là trong trường hợp một tệp chính vô tình bị thiếu.
Việc cho phép chèn các tập tin vào tập tin khác giúp tiết kiệm rất nhiều thời gian và công việc.
Điều này có nghĩa là bạn có thể tạo một file tiêu đề, chân trang hoặc menu tiêu chuẩn và chèn chúng vào tất cả các trang web của bạn. Sau này, nếu tiêu đề thay đổi thì bạn chỉ cần cập nhật file tiêu đề thay vì phải vào từng trang để cập nhật.
Cú pháp
include 'filename';
//or
require 'filename';
Ví dụ sử dụng include trong PHP
ví dụ 1
Giả sử chúng ta có một file chân trang tiêu chuẩn gọi là “footer.php”, trông giống như thế này:
<?php
echo "<p>Copyright © " . date("Y") . " Comdy.vn</p>";
?>
Để thêm file chân trang vào trong một trang, hãy sử dụng câu lệnh include
như sau:
<html>
<body>
<h1>Welcome to my home page!</h1>
<p>Some text.</p>
<p>Some more text.</p>
<?php include 'footer.php';?>
</body>
</html>
Đây là kết quả:
Ví dụ 2
Giả sử chúng ta có một file menu tiêu chuẩn gọi là “menu.php”:
<?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>';
?>
Để thêm tệp chân trang vào trong một trang, hãy sử dụng câu lệnh include
như sau:
<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>
Đây là kết quả:
Ví dụ 3
Giả sử chúng ta có một file có tên là “vars.php”, với một số biến được định nghĩa sẵn:
<?php
$color = 'red';
$car = 'BMW';
?>
Để thêm tệp “vars.php” vào trong một trang, hãy sử dụng câu lệnh include
như sau:
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'vars.php';
echo "I have a $color $car.";
?>
</body>
</html>
Đây là kết quả:
So sánh include với require trong PHP
Câu lệnh require
cũng được sử dụng để thêm một file vào mã PHP.
Tuy nhiên, có một sự khác biệt lớn giữa include
và require
; khi một file được thêm bằng câu lệnh include
và PHP không thể tìm thấy nó, tập lệnh sẽ tiếp tục thực thi:
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
Đây là kết quả:
Mặc dù file “noiFileExists.php” không tồn tại nhưng chương trình vẫn chạy. Các biến $color và $car không được định nghĩa nên không có giá trị để xuất ra.
Nếu chúng ta thực hiện cùng một ví dụ trên bằng cách sử dụng câu lệnh require
, câu lệnh echo sẽ không được thực thi vì thực thi tập lệnh sẽ dừng sau khi câu lệnh require
trả về lỗi nghiêm trọng:
<html>
<body>
<h1>Welcome to my home page!</h1>
<?php require 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
Đây là kết quả:
Như bạn đã thấy trong kết quả, câu lệnh echo đã không được thực thi do PHP không tìm thấy file “noFileExists.php”.
Sử dụng
require
khi file được yêu cầu bởi ứng dụng.
Sử dụnginclude
khi file không bắt buộc và ứng dụng sẽ tiếp tục khi không tìm thấy.