亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 在驗證之前檢測它是 CONSTANT 還是 STRING

PHP 在驗證之前檢測它是 CONSTANT 還是 STRING

PHP
呼啦一陣風 2023-11-03 16:03:40
您可以通過以下方式執行此操作:function count_array_values($my_array, $match) {    $count = 0;     foreach ($my_array as $key => $value)     {         if ($value == $match)         {             $count++;         }     }        return $count; } $array = ["hello","bye","hello","John","bye","hello"];$output =[];foreach($array as $a){    $output[$a] = count_array_values($array, $a); }arsort($output);print_r($output);你會得到類似的輸出Array ( [hello] => 3 [bye] => 2 [John] => 1 )我正在開發一個驗證變量和常量的函數。function checkVars($var){ if(isConstant($var)){ <--here is my problem, how do I check if its a Constant and or a string?  return defined($var); }else{  //use other functions to check if its a valid variable }}有沒有辦法檢查它是字符串還是常量?編輯: 這背后的想法是節省重復任務的代碼行,例如:if(defined('CONS')){ if(CONS > 0 && CONS !== false){  //and so on.. }}這只是一個示例,但您可以使用 4 行代碼來驗證常量或變量以滿足特定應用程序的需求。這個想法是通過返回 true 或 false 的單個函數調用來保存所有工作:if(isValid('CONS')){ //do stuff on true}else{ //do stuff on false}
查看完整描述

3 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

檢查一個常量是否由她的名字定義:


defined('CONSTANT');

檢查是否有任何值是字符串:


is_string(CONSTANT);

從邏輯上講,如果它不是常量,那么它只是一個字符串。


要檢查是否是常量,您必須在字符串中傳遞常量名稱。您還可以使用 檢查是否存在具有相同值的常量get_defined_constants(),但您不會知道是否是相同的常量。


define('MYCONST', "THE VALUE");

function exists_a_constant($value)

{

    $constants = get_defined_constants(true);

    return in_array($value, $constants['user']); // true if finds or false if not

    // return array_search($value, $constants['user']);    //Will return the key (name of the constant)

}


function checkVars($var)

{

    if (exists_a_constant($var)) {

        echo "exists a constant";

    } else {

        echo "not";

    }

}


checkVars(MYCONST);

// exists a constant

checkVars('MYCONST');

// not

checkVars("THE VALUE");

// exists a constant

checkVars("random string");

// not


查看完整回答
反對 回復 2023-11-03
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您將使用defined()來測試該常量是否存在并已定義。然后使用is_string()withconstant()來判斷常量是否是字符串。我假設您正在使用,return因為此條件是函數的一部分:


if(defined($constantName) and is_string(constant($constantName))) {

? ? return constant($constantName);

} else {

? ? // other code

}

運行以下測試我可以看到返回了“bar”:


define("FOO", "bar");

$constantName = "FOO";


if(defined($constantName) and is_string(constant($constantName))) {

? ? echo constant($constantName); // 'bar'

} else {

? ? // other code

}


查看完整回答
反對 回復 2023-11-03
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

我做了一些更改并且有效。


get_define_constants 獲取一個包含所有已定義常量的數組,然后我使用 array_key_exists 來檢查您傳遞的常量是否在數組中。


define('FOO','bar');

function exists_a_constant($value){

? ? $constants = get_defined_constants();

? ? return array_key_exists($value,$constants);?

}


if(exists_a_constant('FOO')){

? ? echo 'defined';

}else{

? ? echo 'not defined';

}


查看完整回答
反對 回復 2023-11-03
  • 3 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號