View Full Version : Hàm Require và Require_once trong PHP
Trong một file php hầu như chăng khi nào ta Require một file 2 lần cả :angry:
vậy 2 tên này khác nhau chỗ nào vây ?
zeroonea
11-06-2007, 12:04
{@:
require() & require_once(): statement includes and evaluates the specific file.
but:
require_once(): if the code from a file has already been included, it will not be included again
:@}
tại sao lại có thêm include ?
include & require tên nào nhanh hơn ?
tumickey
12-06-2007, 10:56
<?php
include(’A.php’);
include_once ‘B.php’;
require ‘C.php’;
require_once(’D.php’);
?>
Cả 4 lệnh trên đều có chức năng chèn tài nguyên từ máy local hay từ xa theo một đường dẫn nào đó, chỉ có một sự khác biệt nho nhỏ:
require & include: khi dùng require, nếu file được chèn vào có lỗi, chương trình sẽ dừng ngay tại chỗ bị lỗi trong khi nếu dùng include thì chương trình vẫn tiếp tục được thực thi.
require_once & include_once: nếu file nguồn đã được chèn rồi thì nó sẽ không được chèn lại nữa. 2 hàm này đều sử dụng chung 1 danh sách file đã được chèn nên không phải lo lắng về việc lặp lại chúng.
<?php
require_once ‘A.php’;
include_once ‘A.php’; // không có tác dụng
?>
Tuy nhiên trong phiên bản PHP4 trên Windows thì:
<?php
require_once ‘a.php’;
require_once ‘A.php’; // sẽ chèn thêm a.php một lần nữa
?>
Trong trường hợp chèn tài nguyên từ xa (qua HTTP) thì việc chèn có thành công hay không còn phụ thuộc vào việc tài nguyên đó có được thực thi trên server đó không. Nếu được thực thi, nó sẽ chạy script trên đó trước và chúng ta sẽ chèn vào chương trình những gì mà nó trả lại.
Ví dụ:
http://web1/file.asp?foo=Hello có mã nguồn là
<%
Response.Write(Request.QueryString(”foo”))
%>
thì đoạn mã dưới đây:
<?php include(’http://web1/file.php’); ?>, world!
sẽ xuất ra:
Hello, world!
(St)
Tuy nhiên trong phiên bản PHP4 trên Windows thì:
<?php
require_once ‘a.php’;
require_once ‘A.php’; // sẽ chèn thêm a.php một lần nữa
?>
Theo mình biết thì windows đâu phân biệt chữ hoa hay chữ thường trong tên file ?
http://web1/file.asp?foo=Hello
http://web1/file.php
2 file này có liên quan gì nhau đâu ?
zeroonea
13-06-2007, 12:13
{@:
- Là vầy mới đúng:
Ví dụ:
http://web1/file.asp?foo=Hello có mã nguồn là
<%
Response.Write(Request.QueryString(”foo”))
%>
thì đoạn mã dưới đây:
<?php include('http://web1/file.asp?foo=Hello'); ?>, world!
sẽ xuất ra:
Hello, world!
:@}
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.