2014-09-25 121 views
1

是否有可能爲php變量存儲if聲明?php變量是否可以包含if語句?

這樣的:

$num=0; 
$var='if($num==0){print "true";}'    
+2

這裏有一句諺語...... *你有沒有試過它*問題。 – 2014-09-25 09:55:48

+1

您可以閱讀手冊嗎? – 2014-09-25 09:56:23

+0

否。變量保存數據,'if'語句是代碼。你似乎對你想要在這裏做什麼有錯誤的想法。 – deceze 2014-09-25 09:57:29

回答

1

你可以存儲在運行,如果一個函數。它被稱爲closure

$greet = function($name) 
{ 
    if($name != '') { 
     printf("Hello %s\r\n", $name); 
    } 
}; 

$greet('World'); 
$greet('PHP'); 
+1

哦,我其實不知道。 :O謝謝你我自己有點新。 :) – 2014-09-25 10:16:00

2

是的,這是可能的。但運行$var代碼,你需要使用eval功能,這是一個非常不好的做法:

<?php 
$num=0; 
$var='if($num==0){print "true";}'; 

eval($var); 

你可以考慮改變這個代碼爲:

<?php 
$num=0; 

$val = 'numFunction'; 

$val($num); 

function numFunction($num) 
{ 
    if($num==0) 
     print "true"; 
} 

或封閉物,@Napolux建議:

<?php 
$num=0; 

$val = function($num) 
{ 
    if($num==0) 
     print "true"; 
}; 

$val($num); 
+0

所以我甚至不會在答案中寫下它:P – Napolux 2014-09-25 10:01:28

0

最好的辦法是

$num=0; 
if($num==0) 
{ 
$var = true; 
print $var; 
}