iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
1
Software Development

網頁後端的30件小事系列 第 15

打包和拆開:PHP的compact和extract

  • 分享至 

  • xImage
  •  

前言

extract和compact基本上是兩個互為相反的函式;一個是把一包資料拆開,另一個是把多個資料打包再一起,我的理解。

extract()


// 假設有一組資料如下
$data = [
    'name'=>'Joe',
    'age'=>20,
    'height'=>175
];

//根據$data的key和value宣告數個變數
extract($data);

//試著把$name、$age、$height三個變數印出來
echo 'name:'.$name;
echo '<br>';
echo 'age:'.$age;
echo '<br>';
echo 'height:'.$height.' cm';

在瀏覽器印出來長這樣~
https://ithelp.ithome.com.tw/upload/images/20200930/20129556TqWcyIBjlX.png

compact()

// 以下有三個變數
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

// 放入想打包的對象
$result = compact("event", "state");

// 印出結果
var_dump($result);

https://ithelp.ithome.com.tw/upload/images/20200930/20129556zvmdgE5mrA.png

也可以輸入一個陣列(array)。

// 把city和state組成一個陣列
$location_vars = array("city", "state");
// compact
$result = compact($location_vars);

https://ithelp.ithome.com.tw/upload/images/20200930/20129556XTTxDTYdBe.png

也可以複合使用,輸入變數名稱,又輸入變數名稱陣列。

// 把city和state組成一個陣列
$location_vars = array("city", "state");
// 同時輸入個變數名字(string)和陣列(array)
$result = compact('event', $location_vars);

https://ithelp.ithome.com.tw/upload/images/20200930/201295568kHRsxh6c4.png

結果的順序會依照compact讀入的順序,上面我們把'event'放最前面,所以結果也是在result[0],也就是第一筆資料!


上一篇
Laravel裡的Model
下一篇
php實作儲存密碼和驗證
系列文
網頁後端的30件小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言