用二進位制位來表示是否擁有多個平行的屬性

pengfoo發表於2014-03-18
<?php
	define("PUBLIC_ARTICLE",	1);		//發行文章
	define("CREATE_ARTICLE",	2);		//新增文章
	define("MODIFY_ARTICLE",	4);		//修改文章
	define("DELETE_ARTICLE",	8);		//刪除文章
	define("SHARCH_ARTICLE",	16);		//搜尋文章
	define("CREATE_COMMENT",	32);		//新增文章評論
	define("DELETE_COMMENT",	64);		//刪除文章評論

	//所有的許可權
	$final_allow = PUBLIC_ARTICLE | CREATE_ARTICLE | MODIFY_ARTICLE | DELETE_ARTICLE 
		| SHARCH_ARTICLE | CREATE_COMMENT | DELETE_COMMENT;

	echo "管理者擁有的全部許可權:" .decbin($final_allow). "<br>";

	$no_shearch_allow = $final_allow ^ SHARCH_ARTICLE;
	echo "僅無法搜尋文章的許可權:" .decbin($no_shearch_allow). "<br>";

	//編輯人員獨有的許可權
	$editor_allow = PUBLIC_ARTICLE | MODIFY_ARTICLE | DELETE_ARTICLE;
	$no_editor_allow = $final_allow & ~$editor_allow;
	echo "非編輯人員所有的許可權:" .decbin($no_editor_allow). "<br>";
?>

相關文章