php之可變變量的實(shí)例詳解
php之可變變量的實(shí)例詳解
前言:
最近在技術(shù)博客網(wǎng)站上偶然間瀏覽到一個新名詞:"php的可變變量";然后就在網(wǎng)上查了下了解下,覺得用的還挺方便的,下面都是從網(wǎng)上代碼copy到我本地環(huán)境運(yù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)文章
thinkPHP5.0框架整體架構(gòu)總覽【應(yīng)用,模塊,MVC,驅(qū)動,行為,命名空間等】
這篇文章主要介紹了thinkPHP5.0框架整體架構(gòu),簡單介紹了thinkPHP5.0的應(yīng)用,模塊,MVC,驅(qū)動,行為,命名空間等概念與基本用法,需要的朋友可以參考下2017-03-03PHP+ajaxfileupload+jcrop插件完美實(shí)現(xiàn)頭像上傳剪裁
在做項(xiàng)目的時候,經(jīng)常需要一些會員系統(tǒng)相關(guān)的內(nèi)容,比如頭像的上傳與裁剪等等,下面將這塊內(nèi)容分享給大家2014-06-06PHP中SSO Cookie登錄分析和實(shí)現(xiàn)
單點(diǎn)登錄SSO(Single Sign-On)是身份管理中的一部分。SSO的一種較為通俗的定義是:SSO是指訪問同一服務(wù)器不同應(yīng)用中的受保護(hù)資源的同一用戶,只需要登錄一次,即通過一個應(yīng)用中的安全驗(yàn)證后,再訪問其他應(yīng)用中的受保護(hù)資源時,不再需要重新登錄驗(yàn)證2015-11-11