2015-04-17 32 views
5

Tôi đang cố gắng sử dụng eval() chức năng như thế:chức năng Undefined eval() - PHP

$foo = 'eval'; 
$bar = 'echo 1;'; 
$foo($bar); 

Nhưng tôi nhận được một lỗi: Fatal error: Call to undefined function eval()

đó là lạ vì đoạn mã sau đang làm việc

$foo = 'base64_encode'; 
$bar = 'foobar'; 
echo $foo($bar); 

bất cứ ai có thể giúp về nó?

+1

Đó là bởi vì nó là ác! – adeneo

Trả lời

9

Từ eval documentation:

Note: Because this is a language construct and not a function, it cannot be called using variable functions .

Sau khi liên kết trong ghi chú mà bạn cũng sẽ tìm thấy:

Variable functions won't work with language constructs such as echo , print , unset() , isset() , empty() , include , require and the like. Utilize wrapper functions to make use of any of these constructs as variable functions.

+1

@ficuscr Có thể sử dụng cực kỳ thiết thực và hữu ích cho 'eval'. Vấn đề là nó bị lạm dụng. – Anonymous

+0

Grudgingly đồng ý ... Mặc dù họ rất ít và xa. Và không theo cách này - chắc chắn rằng hàm biến không phải là để dễ đọc. Đã xem các trường hợp sử dụng hợp lệ hơn cho 'goto' ... – ficuscr

Các vấn đề liên quan