一些配置可以以陣列的形式表示(`配置引數` => `配置值`,),例如:
array
(
`var1` => `val1`,
`var2` => `val2`,
`var3` => `val3`,
);
這些陣列表示的配置怎麼使用呢?
首先,把這個陣列前面加上 return,單獨儲存為一個檔案:
return array
(
`var1` => `val1`,
`var2` => `val2`,
`var3` => `val3`,
);
然後,在另一個檔案裡 require 它,就會返回該陣列,然後再用 extract 函式把陣列轉化為變數。
例子:
<?php
$catid = 1;
//返回該陣列
$var_array = require(`category_` . $catid . `.php`);
//print_r($var_array);
//把陣列轉化為變數
extract($var_array, EXTR_PREFIX_SAME, “new”);
//現實變數的值
echo $catid;
echo $new_catid;
echo $module;
echo $catname;
?>
category_1.php檔案:
<?php
return array
(
`catid` => `10`,
`module` => `lightPHP`,
`type` => `1`,
`modelid` => `0`,
`catname` => `網站介紹`,
`description` => “,
);
?>
————————————————-
參考資料:
PHP extract
定義和用法
PHP extract() 函式從陣列中把變數匯入到當前的符號表中。
對於陣列中的每個元素,鍵名用於變數名,鍵值用於變數值。
第二個引數 type 用於指定當某個變數已經存在,而陣列中又有同名元素時,extract() 函式如何對待這樣的衝突。
本函式返回成功設定的變數數目。
語法
extract(array,extract_rules,prefix)
例子
<?php
$a = `Original`;
$my_array = array(“a” => “Cat”,”b” => “Dog”, “c” => “Horse”);
extract($my_array);
echo “$a = $a; $b = $b; $c = $c”;
?>
輸出:
$a = Cat;
$b = Dog;
$c = Horse
例子2
陣列鍵名轉換成變數並輸出
<?php
//假定 $var_array 是 wddx_deserialize 返回的陣列
$size = “large”;
$var_array = array(“color” => “blue”,
“size” => “medium”,
“shape” => “sphere”);
extract($var_array, EXTR_PREFIX_SAME, “wddx”);
echo “$color, $size, $shape, $wddx_sizen”;
?>
上例將輸出:
blue, large, sphere, medium
$size 沒有被覆蓋,因為指定了 EXTR_PREFIX_SAME,這使得 $wddx_size 被建立。
如果指定了 EXTR_SKIP,則 $wddx_size 也不會被建立。
EXTR_OVERWRITE 將使 $size 的值為“medium”,
EXTR_PREFIX_ALL 將建立新變數 $wddx_color,$wddx_size 和 $wddx_shape。
張慶(網眼) ,微博:http://t.qq.com/zhangking
來自“網眼視界”:http://blog.why100000.com
“十萬個為什麼”電腦學習網:http://www.why100000.com
2013-4-2