関数の外部から変数を関数内から変更しようとしています。関数がチェックする日付が特定の量を超えている場合、コードの最初の日付の年を変更する必要があるためです。
$var = "01-01-10";
function checkdate(){
if("Condition"){
$var = "01-01-11";
}
}
A. global キーワードを使用して、アプリケーションスコープからインポートします。
$var = "01-01-10";
function checkdate(){
global $var;
if("Condition"){
$var = "01-01-11";
}
}
checkdate();
B. $ GLOBALS 配列を使用します。
$var = "01-01-10";
function checkdate(){
if("Condition"){
$GLOBALS['var'] = "01-01-11";
}
}
checkdate();
C.変数を渡す 参照による 。
$var = "01-01-10";
function checkdate(&$funcVar){
if("Condition"){
$funcVar = "01-01-11";
}
}
checkdate($var);
次のようにglobal
キーワードを使用するだけです。
$var = "01-01-10";
function checkdate(){
global $var;
if("Condition"){
$var = "01-01-11";
}
}
その変数への参照はグローバル変数になります。
ここでの答えはすべて良いですが、...これを実行してもよろしいですか?
関数内からグローバル変数を変更すると、スパゲッティコードが非常に簡単に発生するため、システム全体で変数が変更されたり、関数が相互に依存したりするなど、一般的に悪い考えです。これは本当に混乱です。
いくつかの代替案を提案させてください。
1)オブジェクト指向プログラミング
2)関数が値を返すようにします。この値は呼び出し元によって割り当てられます。
例えば$ var = checkdate();
3)参照によって関数に渡される配列に値を保存する
function checkdate(&$ values){if(condition){$ values ["date"] = "01-01-11"; }}
お役に立てれば。
このパスを参照してみてください
$var = "01-01-10";
function checkdate(&$funcVar){
if("Condition"){
$funcVar = "01-01-11";
}
}
checkdate($var);
または、上記と同じように試して、機能を同じままにします。
$var = "01-01-10";
function checkdate($funcVar){
if("Condition"){
$funcVar = "01-01-11";
}
}
checkdate(&$var);