1. list 把陣列中的值賦給一些變數
<?php$info = array('coffee', 'brown', 'caffeine');
//列出所有變數
list($drink, $color, $power) = $info
;echo "$drink is $color and $power makes it special.\n";
?>
<?php$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info
;var_dump($a
);?>產生如下輸出(注意單元順序和
list
() 語法中所寫的順序的比較):
array(3)
warning
list() 從最右邊乙個引數開始賦值。如果你用單純的變數,不用擔心這一點。 但是如果你用了具有索引的陣列,通常你期望得到的結果和在 list() 中寫的一樣是從左到右的,但實際上不是。 它是以相反順序賦值的。
<?php$info = array('a'=>'coffee', 'b'=>'brown', 'c'=>'caffeine');
list($drink, $color, $power) = $info
;
echo
$drink
;?>這個時候會丟擲異常:
exception
object
[message:protected] => [notice] : undefined offset: 2這是因為:
list() 僅能用於數字索引的陣列並假定數字索引從 0開始。
解決辦法可以使用sort處理下
<?php
$info = array('a'=>'coffee', 'b'=>'brown', 'c'=>'caffeine');
sort($info
);
list($drink, $color, $power) = $info
;
echo
$drink
;?>
php 使用函式中遇到的坑之 strpos
strpos 查詢字串首次出現的位置 mixed strpos string haystack,mixed needle int offset 0 mystring abc findme a pos strpos mystring,findme 注意這裡使用的是 簡單的 不能像我們期待的那樣工作,因...
使用MessagePack中遇到的坑
網上有很多messagepack的例子,都大同小異,我這裡就不介紹了,主要是說一下遇到的坑。大致情況 服務端和客戶端都能建立連線 客戶端在服務端建立連線的時候,傳送給服務端資料,但服務端就是接受不到訊息,我在編碼器msgpackencoder和msgpackdecoder解碼器中都列印了結果 編碼器...
C opencv使用中遇到的坑
在c 中讀取cv mat的資料時,如果資料不是8位單位元組的,不能使用mat.data i 的形式讀取,因為data是char 型指標.讀取需要指定資料型別,如mat.at i 如果使用指標,需要注意記憶體是否連續,如下所示 int nrows image.rows int ncols image....