グローバル変数を使用して、ある関数の値を使用して、関数を呼び出さずに他の関数に渡すにはどうすればよいですか?
お気に入り
$toshik;
function one()
{
global $toshik;
$toshik=2;
}
function two()
{
one();
global $toshik;
echo $toshik; [//this should give value as **2**]
}
?>
1番目:あなたはおそらくglobal $toshik;
あなたの関数を意味していました。
2番目:それはできません。関数は呼び出されることを意図しています。呼び出すまで何もしないので、当然、変数は設定されません。
関数から1つの変数だけが必要で、残りは必要ない場合は、次のようないくつかの条件を設定し、function one( $set = false )
その後、関数を変更して、変数のみを設定します$set == true
。
試す
$var = 1;
foo(); // outputs: 1
bar(); // outputs: 2
echo $var; // outputs: 3
function foo() {
global $var;
echo $var; // -> 1
$var++;
}
function bar() {
global $var;
echo $var; // -> 2
$var++;
}
あなたは私の答えの後にあなたの質問を更新しました。あなたが投稿したものはうまくいくはずです。もちろん、関数を呼び出す必要があります。
ここには2つのシナリオがあります(コードのフォローアップ)。
// file 1
two(); // echoes nothing
// file 2
one();
two(); // echo 2
第三の道はありません。ちなみに何を成し遂げようとしていますか?
valriableのリファレンスを試してみてください...。
$toshik;
function one(&$toshik){
global $toshik;
$toshik=2;
}
function two(){
global $toshik;
one();
echo $toshik;
}
two();