本文整理汇总了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;
}