在drupal | menu.inc中,我发现常量定义为十六进制:
define('MENU_IS_ROOT', 0x0001)
为什么不
define('MENU_IS_ROOT', 1)
=================================
define('MENU_VISIBLE_IN_BREADCRUMB', 0x0004);
define('MENU_SUGGESTED_ITEM', MENU_VISIBLE_IN_BREADCRUMB | 0x0010);
等于MENU_SUGGESTED_ITEM = MENU_VISIBLE_IN_BREADCRUMB = 16吗?
解决方法:
您可以执行以下操作:
<?PHP
define("FLAG_ONE", 0x0001);
define("FLAG_TWO", 0x0002);
define("FLAG_THREE", 0x0004);
define("FLAG_FOUR", 0x0008);
define("FLAG_ALL", FLAG_ONE|FLAG_TWO|FLAG_THREE|FLAG_FOUR);
function make_waffles()
{
echo 'Yummy! We love Waffles!!!';
}
function do_something($flags)
{
if ($flags & FLAG_TWO)
make_waffles();
}
$flags |= FLAG_TWO;
do_something($flags);
?>
顺便说一句,您可以检查此answer以了解何时使用const或define更好.