私は完全に「異なる」解決策を探しているわけではないので、私のコードでこのようにしなければなりません。 なぜグローバル変数に入力した値が格納されていないのですか?値をグローバルに格納するPHP呼び出し関数が目的の値を返しません
EDIT:関数の中にifを入れるのを忘れていたので、「間違っている」という代入はグローバルに行われました。 これは動作しています。
<?php
$track;$cat;$title;
function storeData($track, $cat, $title){
$GLOBALS['track']=$track;
$GLOBALS['cat']=$cat;
$GLOBALS['title']=$title;
print 'inside function:';
print $GLOBALS['track'];
print $GLOBALS['cat'];
print $GLOBALS['title'];
return array($GLOBALS['track'],$GLOBALS['cat'],$GLOBALS['title']);
}
function getData($track, $cat, $title){
return array('track'=>$GLOBALS['track'],'cat'=>$GLOBALS['cat'],'title'=>$GLOBALS['title']);
}
$a=1;
if ($a==1) {
test($a);
}
function test($a){
$track='correct track ';
$cat='correct cat ';
$title='correct title ';
storeData($track, $cat, $title);
print 'storing this data:';
print $track;
print $cat;
print $title;
$cat='wrong'; $track='wrong'; $title='wrong';
$getting=getData();
$t=$getting['track'];
$c=$getting['cat'];
$e=$getting['title'];
print 'reading back this data:';
print $t;
print $c;
print $e;
}
?>
出力:あなたが関数から配列を返すとき
inside function:correct track correct cat correct title
storing this data:correct track correct cat correct title
reading back this data:correct track correct cat correct title
ああ、私は現在の$ track、$ cat、$ title値をgetDataからオーバーライドして、それを印刷したいと考えています。 –
@RizkiHadiaturrasyid、ここで私の答えをチェックしてください。 –
@HimanshuUpadhyay彼はすでに自動的にあなたの答えが掲載されたことを通知されているので、あなた自身で行う必要はありません。 – sidyll