FlagHelper 物件

規格版本

Version 0.2 : 2008/08/07 by scribe
Version 0.1 : 2007/08/07 by scribe & RT

方法一覽

constructor

FlagHelper function FlagHelper(string $status='')

輸入文章屬性產生 FlagHelper 物件

參數:
$status - 文章屬性欄的內容

<?php
// 一般來說你會透過 PIO 的 getPostStatus() 來取得一個設定好的 FlagHelper 物件而不是直接呼叫它
// 下面各範例的 $flagh 自此而來,不要想說它怎麼憑空出現
 
// $post[0]['status'] 來自於 PIO 讀取文章資料後的結構
$flagh = $PIO->getPostStatus($post[0]['status']);
?>

toString

string function toString()

輸出 FlagHelper 物件為文章屬性原始儲存字串

回傳值: string 形態的文章屬性原始儲存字串,格式為_(屬性)__(屬性):(值)[:(值)…]_

<?php
echo $flagh->toString(); // _Counter:3224__TS__GoodNumber:1:4:8_
?>

get

mixed function get(string $flag)

取得單一文章屬性原始儲存字串,格式為(屬性)(屬性):(值)[:(值)…]

參數:
$flag - 欲取得的文章屬性

<?php
// 取出 TS 屬性原始儲存字串
$flagh->get('TS'); // TS
 
// 取出 Counter 屬性原始儲存字串
$flagh->get('Counter'); // Counter:3224
?>

exists

boolean function exists(string $flag)

檢查指定文章屬性是否存在。

參數:
$flag - 欲檢查的文章屬性
回傳值: 文章屬性是否存在

<?php
// 檢查看看是否有討論串鎖定代表屬性 TS
 
echo $flagh->toString(); // _TS_
$flagh->exists('TS'); // true
?>

value

mixed function value(string $flag)

取得文章屬性值。

參數:
$flag - 欲取得的文章屬性
回傳值:
切換式屬性會回傳boolean,而非切換式屬性會回傳其屬性值(單一或是陣列)。

<?php
echo $flagh->toString(); // _Counter:3224__TS__GoodNumber:1:4:8_
 
// 取得 Counter 屬性值
$flagh->value('Counter'); // '3224'
 
// 取得 TS 屬性 (切換式屬性回傳 boolean)
$flagh->value('TS'); // true
 
// 取得不存在的 SAGE 屬性
$flagh->value('SAGE'); // false
 
// 取得 GoodNumber 屬性
$flagh->value('GoodNumber'); // array('1', '4', '8')
?>

add

FlagHelper function add(string $flag, mixed $value=null)

update 函式的別名。使用方法詳見 update 函式。

update

FlagHelper function update(string $flag, mixed $value=null)

加入或更新指定屬性。如果需要加入多個屬性值,傳入陣列即可。

參數:
$flag - 欲加入或更新的文章屬性
$value - 欲加入或更新的文章屬性的值
回傳值:
回傳 FlagHelper 物件作進一步處理。

<?php
// 將 Counter 屬性值改成 1036
$flagh->update('Counter', 1036);
 
// 新增 TS 屬性,不要忘記其實 add 是 update 的別名而已,作的事一樣
$flagh->update('TS');
 
// 更新 GoodNumber 資料,一次儲存多個值
$flagh->update('GoodNumber', array(1, 4, 7, 15));
?>

replace

string function replace(string $from, string $to)

將一個文章屬性以另一個文章屬性取代。

參數:
$from - 要被取代的文章屬性
$to - 將要取代成為的文章屬性
回傳值:
回傳整列文章屬性欄。

<?php
// 將 TS 改成 SAGE
 
echo $flagh->toString(); // _TS_
$flagh->replace('TS', 'SAGE');
echo $flagh->toString(); // _SAGE_
?>

remove

FlagHelper function remove(string $flag)

移除指定屬性。

參數:
$flag - 欲移除的文章屬性
回傳值:
回傳 FlagHelper 物件作進一步處理。

<?php
// 移除 TS (討論串是否停止) 的設定
 
echo $flagh->toString(); // _TS__SAGE_
$flagh->remove('TS');
echo $flagh->toString(); // _SAGE_
?>

toggle

FlagHelper function toggle(string $flag)

切換指定屬性。

參數:
$flag - 欲切換的文章屬性
回傳值:
回傳 FlagHelper 物件作進一步處理。

<?php
// 切換 TS (討論串是否停止) 的設定
 
$flagh->value('TS'); // true
$flagh->toggle('TS');
$flagh->value('TS'); // false
?>

join

string function join(mixed $arg0, …)

將多個屬性值組合為FlagHelper所使用的格式。

參數:
$arg - 欲組合的文章屬性值。如果是普通陣列(如 value 函式輸出的陣列)將會被展開。
回傳值:
回傳FlagHelper所使用的文章屬性值格式用作進一步處理。

<?php
// 下列動作可以將陣列平版化 (Flatten) 以方便儲存,但是一般來說你不會直接使用這個函式
// 因為 update 的時候系統會自動判斷存入的屬性值是不是陣列,進而幫你做這個平版化動作
echo $flagh->join(array(1, 4, 8)); // 1:4:8
?>

offsetValue

FlagHelper offsetValue(string $flag, number $offset)

將指定屬性值的儲存數字增加或減少指定的數字並儲存。

參數:
$flag - 欲修改的文章屬性
$offset - 增加減少值,可以是正數或負數,類型 int 或 float
回傳值:
回傳 FlagHelper 物件本身。

<?php
// 下列動作可以讓 HP 儲存屬性值減 999
$flagh->offsetValue('HP', -999);
?>

plus

FlagHelper plus(string $flag)

將指定屬性值的儲存數字加一,儲存。

參數:
$flag - 欲修改的文章屬性
回傳值:
回傳 FlagHelper 物件本身。

<?php
// 下列動作可以讓 Counter 屬性旗標值加一儲存,省去其他繁瑣步驟
$flagh->plus('Counter');
 
// 上面一行等同下面這兩行任一 (效果皆相同)
$flagh->update('Counter', intval($flagh->value('Counter')) + 1);
$flagh->offsetValue('Counter', 1);
?>

minus

FlagHelper minus(string $flag)

將指定屬性值的儲存數字減一,儲存。

參數:
$flag - 欲修改的文章屬性
回傳值:
回傳 FlagHelper 物件本身。

<?php
// 下列動作可以讓 Counter 屬性旗標值減一儲存,省去其他繁瑣步驟
$flagh->minus('Counter');
 
// 上面一行等同下面這兩行任一
$flagh->update('Counter', intval($flagh->value('Counter')) - 1);
// 其實 minus 內部也只是幫你做了下面這行
$flagh->offsetValue('Counter', -1);
?>
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.