[英]PHP Integer Configuration (e.g. 1=apache,2=php,3=apache+php)
如何使用PHP解析一個配置值,該配置值是一個數字和其他數字的總數。
這樣的一個例子是:
1->啟用日志記錄
2->啟用錯誤報告
4->啟用電子郵件報告
3->記錄+已啟用錯誤
5->啟用日志記錄+電子郵件
您不僅有一筆總和,還擁有一組標志或位字段,每個標志都用一位表示。
$logging = !!($cfgval & 1);
$errorReport = !!($cfgval & 2);
$emailReport = !!($cfgval & 4);
“!” 只是確保不為0的數字(即設置了特定位的數字)最終具有與其他PHP使用的相同的“ true”值,因此($logging == true)
類的東西始終可以按預期工作。 這不是必需的,但我強烈建議您以某種方式將值轉換為布爾值; (bool)
也可以正常工作,即使它是字符的3倍也是如此。 :)
只要您將數字保持為2(1、2、4、8、16、32 ...)的冪,就很容易將此數字擴展到31-32個不同的標志(整數的大小為32位,但是最高位是一個符號位,如果您不知道“二進制補碼”數學,它的作用就很有趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.