0

呼び出されたdefineがあるかどうかをチェックするスクリプトを作成しようとしています。次に、それを呼び出して配列に配置します。しかし、問題は、異なる末尾の定義が多数あるかどうかを確認する方法です。私の場合の例:「Language_Array_Set_'。$i」。「Language_Array_Set_1、Language_Array_Set_2、Language_Array_Set_3、Language_Array_Set_4」という名前の4つのdefineを宣言した場合、それらすべてを呼び出して1つの配列に配置します。

for($i = 0; $i < Language_Number; $i++) {
    if( defined ( string 'Language_Array_Set_'.$i ) ) {
        return $available = array( 'Language_Array_Set_'.$i => 'en', 'Language_Array_Set_'.$i => 'lt');         // lt, en means that example: Language_Array_Set_1 = en
    }
}
$result = array( 'en', 'lt' );  //what do i want to show me.

どこを探す必要があるのか​​、私の立場で何をするのか、どのように行うのかという質問。回答ありがとうございます。

Language_Numberは、現在保持している別のファイルで定義呼び出しされますnumber:2。

k、ここで: 可能な入力は次のようになります:

define( "Language_Array_Set_1", "en" );
define( "Language_Array_Set_2", "lt" );

..。

出力:

return  array( en, lt );

定義されているLanguage_Array_Set_$numberの数を確認し、その数で配列を作成する必要があります。

"ÁlvaroG。Vicario"ありがとうございますが、主な問題は、定義が3つある場合、2つ、2つある場合に、配列に3つの文字列を追加する方法です。

4

1 に答える 1

0

私はこのようなことをします:

<?php
//Example constants
define( "Language_Array_Set_1", "en" );
define( "Language_Array_Set_2", "lt" );

$definedConstants = get_defined_constants();
$languageArray = array();

foreach($definedConstants as $df => $value) {
    //If first part of constant is Language_Array_Set_ then add
    //defined constant into array $languageArray
    if (substr($df,0,19) == 'Language_Array_Set_') {
        $languageArray[] = $df;
    }

}

//Output relevant information
echo 'lang array=' . print_r($languageArray,true);

$nrOfLanguages = count($languageArray);
echo 'Nr of languages=' . $nrOfLanguages;

?>

出力は次のようになります。

lang array = Array([0] => Language_Array_Set_1 [1] => Language_Array_Set_2)言語の数= 2

于 2013-03-24T22:41:30.070 に答える