include 'xxx.php';
若定義一個function傳回字串, 可以寫成:
function A() {
return 'xxx.php';
}
include A();若定義一個class, 利用magic method, 可以寫成:
class B() {
function __toString() {
return 'xxx.php';
}
}
$B = new B;
include $B;因為還要多一個new的動作, 包裝一下, 最後就變成:
function C() {
$B = new B;
return $B;
}
include C();好吧, 連我自己都覺得有點變態...
這麼做有什麼好處 ?
因為我用過幾個PHP的template engine(例如smarty),
template engine的好處很多,
但是最令我無法忍受的是變數要手工一個個assign實在非常愚蠢.
英文叫: Repeat yourself!
其中牽涉到變數scope的問題, 利用上述技巧可以避開繁瑣的Assign.
打的有點累, 實做細節有機會再詳述.
沒有留言:
張貼留言