![](/img/trans.png)
[英]How can I pass an object with multiple values as parameters in an url with PHP
[英]How can I pass multiple bitwise values in PHP function?
我有一個 function,其中包含多個參數,其中包含 True/False
function checkPersonStatus($isEmployed, $isResident, $isDisable, $isMarried)
我想將它們按位轉換,但值可以隨時為真或假。
我怎樣才能將多個值發送到我的新 function 可以像這樣使用按位?
CONST CHECKNONE = 0;
CONST CHECKEMPLOYED = 1;
CONST CHECKRESIDENT = 2;
CONST CHECKDISABLED = 4;
CONST CHECKMARRIED = 8;
CONST CHECKALL = 15;
如何將這些值傳遞給我的舊 function 並檢查條件?
<?php
const CHECKNONE = 0;
const CHECKEMPLOYED = 1;
const CHECKRESIDENT = 2;
const CHECKDISABLED = 4;
const CHECKMARRIED = 8;
const CHECKALL = 15;
function checkPersonStatus($isEmployed, $isResident, $isDisable, $isMarried, $checkBit)
{
if (!is_bool($isEmployed) || !is_bool($isResident) || !is_bool($isDisable) || !is_bool($isMarried))
throw new \Exception("Invalid argument parameter");
$employed = $resident = $disable = $married = 0;
if ($isEmployed && ($checkBit === CHECKEMPLOYED || $checkBit === CHECKALL))
$employed = 1;
if ($isResident && ($checkBit === CHECKRESIDENT || $checkBit === CHECKALL))
$resident = 2;
if ($isDisable && ($checkBit === CHECKDISABLED || $checkBit === CHECKALL))
$disable = 4;
if ($isMarried && ($checkBit === CHECKMARRIED || $checkBit === CHECKALL))
$married = 8;
$check = $employed | $resident | $disable | $married;
return $check === $checkBit;
}
$checks = [
'check_all_true' => checkPersonStatus(true, true, true, true, CHECKALL),
'check_all_false' => checkPersonStatus(true, true, true, false, CHECKALL),
'check_none_true' => checkPersonStatus(false, false, false, false, CHECKNONE),
'check_none_false' => checkPersonStatus(true, false, false, false, CHECKNONE),
'check_married_true' => checkPersonStatus(false, false, false, true, CHECKMARRIED),
'check_married_true_with_other_bit' => checkPersonStatus(true, false, false, true, CHECKMARRIED)
];
var_dump($checks);
產出
array(6) {
["check_all_true"]=>
bool(true)
["check_all_false"]=>
bool(false)
["check_none_true"]=>
bool(true)
["check_none_false"]=>
bool(true)
["check_married_true"]=>
bool(true)
["check_married_true_with_other_bit"]=>
bool(true)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.