這篇文章主要介紹了php之可變變數的執行個體詳解的相關資料,希望通過本文大家能夠掌握php 可變變數的使用方法,需要的朋友可以參考下
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();
這是做單入口模式的思路!