2016-08-17 21 views
-1

こんにちは私のPHPの理解が限られているので、define()関数は変数を別のものに再定義しますか? したがって、次の関数では、$ default == 'on'へのポインタが返り値が真になるでしょうか?代わりに、私はまだ「オン」になっています。私の限られた知識を許してくれてありがとう。php define()関数の返り値が混乱しているために混乱する

function isseter(&$default,&$reserve=NULL) 
{ 
define('on',true,true);define('off',false,true); 

if (isset($default)) return $default; 
else return $reserve; 
} 
+3

define()は定数を定義し、 "変数を再定義する"の効果はありません。私はあなたがドキュメントを読むことをお勧めします - http://php.net/manual/en/function.define.php – Daniel

+0

私が尋ねる前に私は実際にphp.netに行きました、そして、もし私が例えば$ default = 'on'; $ defaultがtrueになります。私の混乱をおかけして申し訳ありません。 – bigal

答えて

0

define変数を再定義しません。 は、 aと定義し、定数はです。

echo on // Output will be "It is on" 

お知らせが何ドルがないこと:

基本的に、あなたはこのように、あなたのプログラムの残りの部分で使用できる定数onを定義

define('on', 'It is on'); 

ような何かを行うことができます変数ではないので、onの前にサインしてください。

このようにするには、プログラムを変更します。

function isseter(&$default,&$reserve=NULL) 
{ 
    define('on',true,true); 

    if (isset($default)) return $default == on 
    else return $reserve; 
} 

これが真である定数on、可変$defaultの比較結果を表すブール値を返します。ただし、定数を定義すると、その関数内だけでなく、プログラムの残りの部分でも有効になります。したがって、通常、プログラムの先頭に定数を定義します。これを行うことができます:

// Constants 
define('on',true,true); 

// Functions 
function isseter(&$default,&$reserve=NULL) 
{ 
    if (isset($default)) return $default == on 
    else return $reserve; 
} 

// Rest of program