php之可變變量的實例詳解
前言:
最近在技術博客網站上偶然間瀏覽到一個新名詞:"php的可變變量";然后就在網上查了下了解下,覺得用的還挺方便的,下面都是從網上代碼copy到我本地環境運行后算是"拿來主義!"
php手冊上這樣說:
有時候使用可變變量名是很方便的。就是說,一個變量的變量名可以動態的設置和使用。一個普通的變量通過聲明來設置,例如:
$a = 'hello'; $$a = 'world'; echo "$a ${$a}"; echo "$a $hello";
它們都會輸出:hello world。
要將可變變量用于數組,必須解決一個模棱兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變量呢,還是想要$$a 作為一個變量并取出該變量中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
類的屬性也可以通過可變屬性名來訪問。可變屬性名將在該調用所處的范圍內被解析。例如,對于 $foo->$bar 表達式,則會在本地范圍來解析$bar 并且其值將被用于 $foo 的屬性名。對于 $bar 是數組單元時也是一樣。也可使用花括號來給屬性名清晰定界。
看到這里還是云里霧里的,再看,在日常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;
但是現在問題來了,如果POST過來很多變量我們豈不累死啦!那現在可變變量的用處來啦,我們這樣寫:
$array = array(); foreach ($_POST as $key => $value) { $array[$$key] = $value; } echo '<pre>'; // 換行 print_r($array); // 是不是很方便的呢!!
再來一個例子:
有class A和class B以及class C,他們都有自己的函數還是前端傳值,這次是兩個一個class,一個function同樣的
$class=$_GET['class']; $func=$_GET['func']; $obj=new $class(); $obj->$func();
這是做單入口模式的思路!
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。