簡體   English   中英

PHP變量函數和語言構造

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM