php之可變變量的實例詳解
php之可變變量的實例詳解
前言:
最近在技術(shù)博客網(wǎng)站上偶然間瀏覽到一個新名詞:"php的可變變量";然后就在網(wǎng)上查了下了解下,覺得用的還挺方便的,下面都是從網(wǎng)上代碼copy到我本地環(huán)境運行后算是"拿來主義!"
php手冊上這樣說:
有時候使用可變變量名是很方便的。就是說,一個變量的變量名可以動態(tài)的設(shè)置和使用。一個普通的變量通過聲明來設(shè)置,例如:
$a = 'hello';
$$a = 'world';
echo "$a ${$a}";
echo "$a $hello";
它們都會輸出:hello world。
要將可變變量用于數(shù)組,必須解決一個模棱兩可的問題。這就是當(dāng)寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變量呢,還是想要$$a 作為一個變量并取出該變量中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
類的屬性也可以通過可變屬性名來訪問。可變屬性名將在該調(diào)用所處的范圍內(nèi)被解析。例如,對于 $foo->$bar 表達(dá)式,則會在本地范圍來解析$bar 并且其值將被用于 $foo 的屬性名。對于 $bar 是數(shù)組單元時也是一樣。也可使用花括號來給屬性名清晰定界。
看到這里還是云里霧里的,再看,在日常html的<form ...>POST過來很多變量需要處理的,一般的我們會這樣處理:
$id = $_POST['id']; $name = $_POST['name']; $sex = $_POST['sex']; echo "<p>Your order is as follows:</p>"; echo "<br />\$id=".$id; echo "<br />\$name=".$name; echo "<br />\$sex=".$sex;
但是現(xiàn)在問題來了,如果POST過來很多變量我們豈不累死啦!那現(xiàn)在可變變量的用處來啦,我們這樣寫:
$array = array();
foreach ($_POST as $key => $value) {
$array[$$key] = $value;
}
echo '<pre>'; // 換行
print_r($array);
// 是不是很方便的呢??!
再來一個例子:
有class A和class B以及class C,他們都有自己的函數(shù)還是前端傳值,這次是兩個一個class,一個function同樣的
$class=$_GET['class']; $func=$_GET['func']; $obj=new $class(); $obj->$func();
這是做單入口模式的思路!
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
php array_pop 刪除數(shù)組最后一個元素實例
這篇文章主要介紹了php array_pop 刪除數(shù)組最后一個元素實例的相關(guān)資料,需要的朋友可以參考下2016-11-11
PHP中strlen()和mb_strlen()的區(qū)別淺析
這篇文章主要介紹了PHP中strlen()和mb_strlen()的區(qū)別淺析,本文探討的中英混合的字符在使用這個函數(shù)時的區(qū)別,需要的朋友可以參考下2014-06-06
laravel 解決強制跳轉(zhuǎn) https的問題
今天小編就為大家分享一篇laravel 解決強制跳轉(zhuǎn) https的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
destoon實現(xiàn)會員商鋪中指定會員或會員組投放廣告的方法
這篇文章主要介紹了destoon實現(xiàn)會員商鋪中指定會員或會員組投放廣告的方法,很實用的技巧,需要的朋友可以參考下2014-08-08
yii實現(xiàn)CheckBox復(fù)選框在同一行顯示的方法
這篇文章主要介紹了yii實現(xiàn)CheckBox復(fù)選框在同一行顯示的方法,對比了網(wǎng)上搜集的方法,給出了改進(jìn)的意見,非常具有實用價值,需要的朋友可以參考下2014-12-12
php小型企業(yè)庫存管理系統(tǒng)的設(shè)計與實現(xiàn)代碼
雙專業(yè)畢業(yè)論文做了一個小型企業(yè)庫存管理系統(tǒng),使用PHP&mysql組合進(jìn)行開發(fā)。頭一次開發(fā)稍微大一點的東西,php也是自學(xué)的2011-05-05

