第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在PHP中以字符串的形式獲得變量名?

如何在PHP中以字符串的形式獲得變量名?

PHP
qq_笑_17 2019-06-15 18:04:28
如何在PHP中以字符串的形式獲得變量名?假設(shè)我有以下PHP代碼:$FooBar = "a string";然后我需要這樣的函數(shù):print_var_name($FooBar);其中的指紋:FooBar有什么辦法可以做到嗎?這在PHP中是可能的嗎?
查看完整描述

3 回答

?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊

你可以用GET_Defined_vars()若要查找與您要查找的變量名相同值的變量的名稱,請執(zhí)行以下操作。顯然,這并不總是有效的,因?yàn)椴煌淖兞客ǔ>哂邢嗤闹?,但這是我能想到的唯一的方法。

編輯:GET_Defined_vars()似乎不能正常工作,它返回‘var’,因?yàn)楹瘮?shù)本身使用$var。$globals似乎起作用了,所以我把它改成了那個。

function print_var_name($var) {
    foreach($GLOBALS as $var_name => $value) {
        if ($value === $var) {
            return $var_name;
        }
    }

    return false;}

編輯:要明確的是,在PHP中沒有很好的方法來做到這一點(diǎn),這可能是因?yàn)槟粦?yīng)該這樣做。也許有更好的方法來做你想做的事。


查看完整回答
反對 回復(fù) 2019-06-15
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個贊

我也想不出一種有效的方法,但我想到了這個。它的工作,為以下有限的用途。

聳肩

<?phpfunction varName( $v ) {
    $trace = debug_backtrace();
    $vLine = file( __FILE__ );
    $fLine = $vLine[ $trace[0]['line'] - 1 ];
    preg_match( "#\\$(\w+)#", $fLine, $match );
    print_r( $match );}$foo = "knight";$bar = array( 1, 2, 3 );$baz = 12345;varName( $foo );varName( $bar );varName( $baz );?>// Returns
Array
(
    [0] => $foo
    [1] => foo
)
Array
(
    [0] => $bar
    [1] => bar
)
Array
(
    [0] => $baz
    [1] => baz
)

它基于調(diào)用函數(shù)的行工作,在該行中,它找到傳入的參數(shù)。我認(rèn)為它可以擴(kuò)展到使用多個參數(shù),但是,正如其他人所說的,如果您能夠更好地解釋這種情況,另一種解決方案可能會更好。


查看完整回答
反對 回復(fù) 2019-06-15
  • 3 回答
  • 0 關(guān)注
  • 1363 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號