Eval() và include()Có thể hiểu nôm na, eval() sẽ nhận đối số là một chuỗi và thực thi chuỗi đó như một đoạn code PHP. Vì vậy, đối số truyền cho eval() phải là một chuỗi thỏa các điều kiện về cú pháp của PHP. VD:
CODE
<?
$str = ‘echo “Hello world !!!”;’;
eval($str);
?>
Một VD khác:
CODE
<?
$a = “Hello world !!!”;
$b = “empty”;
echo “Bien \$b la: <b>$b</b><br>”;
echo “Sau khi eval(), “;
// gán giá trị biến $a cho biến $b và hiện ra thông báo về giá trị mới của biến $b
$str = ‘$b = $a; echo “bien \$b bay gio la: <b>$b</b>”;’;
eval($str);
?>
include_once() sẽ gộp một file được xác định trong quá trình một đoạn mã thực thi. Về cách hoạt động, nó rất giống include() nhưng khác ở chỗ, nếu file nào đó đã được gộp thì include_once() sẽ không gộp lại lần nữa và trả về trị là FALSE. VD:
CODE
*** File include: inc1.php **********
<?
echo “Toi duoc include.<br>”;
?>
*** File thuc thi: ex_inc_11.php ********
<?
include ‘inc1.php’;
include_once ‘inc1.php’;
?>
*** File thuc thi: ex_inc_12.php ********
<?
include ‘inc1.php’;
include ‘inc1.php’;
?>
VD khác:
CODE
*** File include: inc2.php **********
<?
echo “Toi duoc include.<br>”;
function doSth() {
echo “Hello world !!!<br>”;
}
?>
*** File thuc thi: ex_inc_2.php ********
<?
include ‘inc2.php’;
doSth();
// include ‘inc2.php’; <— sẽ có báo lỗi vì hàm doSth() đã được định nghĩa.
include_once ‘inc2.php’; // sẽ không có báo lỗi, nhưng hàm này cũng không được thực hiện
?>
Chúng ta có thể handle được các file nào đã được include trong suốt đoạn code bằng hàm get_included_files(). Hàm này sẽ trả về một mảng chứa các file đã được include. VD:
CODE
<?
include ‘inc1.php’;
include ‘inc2.php’;
$inc = get_included_files();
print_r($inc);
?>
Đăng ký:
Đăng Nhận xét (Atom)
Đăng nhận xét