PHP 數組配置文件怎麼用?

    一些配置可以以數組的形式表示('配置參數' => '配置值',),例如:
    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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章