<?
define ("public_article", 1);
define ("create_article", 2);
define ("modify_article", 4);
define ("delete_article", 8);
define ("search_article", 16);
define ("create_comment", 32);
define ("delete_comment", 64);

$final_allow = public_article | create_article | modify_article | delete_article | search_aticle | create_comment | delete_comment;
echo "管理者拥有的全部权限:" .decbin ($final_allow). "<br>";



$no_search_allow = $fina_allow ^ search_article;
echo "仅无法搜索文章的权限:" .decbin($no_search_allow). "<br>";

$editor_allow = public_article | modify_article | delete_article;
$no_editor_allow = $final_allow & ~editor_allow;
echo "非编辑人员所有的权限:" .decbin($no_editor_allow)."(br)";

?>
初学php, $final_allow = public_article | create_article | modify_article | delete_article | search_aticle | create_comment | delete_comment;
这句是什么意思?

解决方案 »

  1.   

    1 2 4 8 16 32 64的二进制码分别是
    0000001
    0000010
    0000100
    0001000
    0010000
    0100000
    将这几个数字进行或(|)运算,得到01111111,可见,只要判断二进制相应位置上的值是0或1就可判断是否有相应的操作权限,比如$final_allow的最后一位是1,则是public_article,第三位是要则可修改文章。