[英]PHP Variable Functions and language constructs
我試圖了解為什么變量函數的PHP文檔指出:
變量函數不適用於語言構造,例如echo,print,unset(),isset(),empty(),include,require等。 利用包裝器函數將這些構造中的任何一個用作變量函數。
我嘗試了其中的一些,它們工作得很好:
function animal() {
return 'Monkey';
}
$animal = 'animal';
echo $animal();
返回Monkey
就像人們期望的那樣。
與print
結構相同的結果-然后我嘗試了unset()
,它也可以正常工作:
function getIndex() {
return 0;
}
$index = 'getIndex';
$array = array(
'Monkey',
'Gorilla'
);
unset($array[$index()]);
print_r($array);
這將返回Array ( [1] => Gorilla )
。
我在這里想念什么嗎? 只是添加-我正在使用PHP 5.5.14。
它們意味着另一種用法:
<?php
$var = "some variable";
$a = "unset"; //also print, isset, echo, include
// you cannot do this:
$a($var);
當然,您可以使用包含函數名稱的字符串來取消設置或打印變量。
(或者我缺少什么?
您實際上並沒有使用任何語言構造作為變量函數:
但是嘗試
$function = 'echo';
$function('Hello World');
完全不符合文檔中的描述
如手冊所述,在回聲周圍使用包裝函數,然后可以將該函數用作變量函數
function myecho($value) {
echo $value;
}
$function = 'myecho';
$function('Hello World');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.