2011-05-26 7 views
0

質問を表現するためのボキャブを見つけることはかなり難しいかもしれませんが、うまくいけば、関数内の変数を参照して何が間違っているのかを教えてください。関数内の変数を参照してPHP変数を再定義しますか?

例:

<?php 
$a = 5; 
$something = 5; 

function changeIt($it){ 
    global $a; 
    $it = $it * $a; 
}; 

changeIt($something); 

echo $something; 
    ?> 

これは5を返すので、グローバル変数$何かが再定義されていません。

+1

...別の参照変数を使用して、いずれかの 'changeIt'を呼び出していないではありません。 http://php.net/manual/en/language.references.php。代わりにあなたの関数宣言で '&$ it'を使用してください。 – Ryan

+1

あなたは 'changeIt()'を呼び出していません。さらに、あなたは何を変えたいですか? –

+0

minitechとJasonの両方があなたが間違っていくつかのことをしていると指摘しています。コードを忘れて、達成しようとしていることを正確に教えていただければ、非常に役に立ちます。 – yannis

答えて

5

あなたは、参照によって$itを渡すことはなく、また、changeItを呼び出す必要があります:

<?php 
    function changeIt(&$it){ 
     global $a; 
     $it = $it * $a; 
    } 

    $a = 5; 
    $something = 5; 

    changeIt($something); 
?> 

http://ideone.com/9RQQW

+0

彼は '$ a'をグローバルとして使っているので' changeIt($ something) 'をしたいと思っていますが、' $ something'は使われていません。 – mpen

+0

@マーク:おっと、ありがとう! :P – Ryan

+0

正しい答えと、全く使われていない$を何かに含めるために+1 ... – yannis

関連する問題