2011-10-29 32 views
12

Tôi đang thử nghiệm với chức năng không gian tên của PHP 5.3 và tôi không thể tìm ra cách khởi tạo một lớp mới với tiền tố không gian tên.PHP, lớp biến mới trong không gian tên

này hiện hoạt động tốt:

<?php 
new $className($args); 
?> 

Nhưng làm thế nào tôi có thể thêm vào trước namespace của tôi trước một classname biến? Ví dụ sau không hoạt động.

<?php 
new My\Namespace\$className($args); 
?> 

Ví dụ này sản lượng: lỗi Parse: lỗi cú pháp, bất ngờ T_VARIABLE

Trả lời

15

Hãy thử điều này:

$class = "My\Namespace\$className"; 
new $class(); 
+2

sẽ không u cần phải thoát khỏi dấu back slash? "My \\ Namespace \\ $ className"; – Stevanicus

+0

Tôi không hiểu ... tại sao điều này lại cần thiết? Tôi phải làm điều tương tự. Có vấn đề gì với cài đặt PHP không? –

+0

Lý do cho dấu gạch chéo ngược kép là dấu gạch chéo ngược là một ký tự chức năng và cần phải tự thoát. – Dandy

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