close
我發現parse_str在解碼含有' ', '.'等字元時,會發生問題,所以我打算寫個函數取代它。
而這個陣列用的賦值函數算是副產品,會被使用在一些特殊的情況中。
function &陣列:參照(&$陣列, &$索引表 = array()){
$參照 = &$陣列;
foreach ($索引表 as $索引) {
if (false == is_array($參照) && false == is_null($參照)) {
$輸出 = false;
return $輸出;
} else if (empty($索引)) {
$參照 = &$參照[];
} else {
$參照 = &$參照[$索引];
}
}
return $參照;
}
function &陣列:賦值(&$陣列, &$索引表 = array(), &$值 = '', $拷貝 = true) {
$參照 = &陣列:參照($陣列, $索引表);
if (false === $參照) {
return $陣列;
} else if (false == $拷貝) {
$參照 = &$值;
} else if(is_object($值)) {
$參照 = clone $值;
} else {
$參照 = $值;
}
return $陣列;
}
底下是個簡單的範例,執行看看就知道這個函數在幹麼。
$陣列 = array('a'=>array(1,2));
$參照 = array('a', '', 'c');
$值 = 'd';
陣列:賦值($陣列, $參照, $值);
$參照 = array('a', '');
$值 = 'z';
陣列:賦值($陣列, $參照, $值);
echo '<pre>';
print_r($陣列);
echo '</pre>';
而這個陣列用的賦值函數算是副產品,會被使用在一些特殊的情況中。
function &陣列:參照(&$陣列, &$索引表 = array()){
$參照 = &$陣列;
foreach ($索引表 as $索引) {
if (false == is_array($參照) && false == is_null($參照)) {
$輸出 = false;
return $輸出;
} else if (empty($索引)) {
$參照 = &$參照[];
} else {
$參照 = &$參照[$索引];
}
}
return $參照;
}
function &陣列:賦值(&$陣列, &$索引表 = array(), &$值 = '', $拷貝 = true) {
$參照 = &陣列:參照($陣列, $索引表);
if (false === $參照) {
return $陣列;
} else if (false == $拷貝) {
$參照 = &$值;
} else if(is_object($值)) {
$參照 = clone $值;
} else {
$參照 = $值;
}
return $陣列;
}
底下是個簡單的範例,執行看看就知道這個函數在幹麼。
$陣列 = array('a'=>array(1,2));
$參照 = array('a', '', 'c');
$值 = 'd';
陣列:賦值($陣列, $參照, $值);
$參照 = array('a', '');
$值 = 'z';
陣列:賦值($陣列, $參照, $值);
echo '<pre>';
print_r($陣列);
echo '</pre>';
全站熱搜
留言列表