本文整理匯總了PHP中PMA_Tracker::_tracking_set_flags方法的典型用法代碼示例。如果您正苦於以下問題:PHP PMA_Tracker::_tracking_set_flags方法的具體用法?PHP PMA_Tracker::_tracking_set_flags怎麽用?PHP PMA_Tracker::_tracking_set_flags使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類PMA_Tracker
的用法示例。
在下文中一共展示了PMA_Tracker::_tracking_set_flags方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: _transformTrackingSet
/**
* Transforms tracking set for Drizzle, which has no SET type
*
* Converts int<>string for Drizzle, does nothing for MySQL
*
* @param int|string $tracking_set Set to convert
*
* @return int|string
*/
private static function _transformTrackingSet($tracking_set)
{
if (!PMA_DRIZZLE) {
return $tracking_set;
}
// init conversion array (key 3 doesn't exist in calculated array)
if (isset(self::$_tracking_set_flags[3])) {
// initialize flags
$set = self::$_tracking_set_flags;
$array = array();
for ($i = 0, $nb = count($set); $i < $nb; $i++) {
$flag = 1 << $i;
$array[$flag] = $set[$i];
$array[$set[$i]] = $flag;
}
self::$_tracking_set_flags = $array;
}
if (is_numeric($tracking_set)) {
// int > string conversion
$aflags = array();
// count/2 - conversion table has both int > string
// and string > int values
for ($i = 0, $nb = count(self::$_tracking_set_flags) / 2; $i < $nb; $i++) {
$flag = 1 << $i;
if ($tracking_set & $flag) {
$aflags[] = self::$_tracking_set_flags[$flag];
}
}
$flags = implode(',', $aflags);
} else {
// string > int conversion
$flags = 0;
foreach (explode(',', $tracking_set) as $strflag) {
if ($strflag == '') {
continue;
}
$flags |= self::$_tracking_set_flags[$strflag];
}
}
return $flags;
}