functionの中で
function ($testdata) {
$data = 100;
}
$dataという数値を作成します。
その$dataというデータを別の場所で使用するには
functionの中に何か記述しなくてはいけないのでしょうか?
同じ関数内ならそのまま利用可能。
外にに出すなら
$a = function_name($input);
$c = $a + $b;
↑$aに下記の関数の$out_valueの値が入っています。
function function_name($input_value){
~処理~
return $out_value;
}
として$aに格納して利用できます。
ちなみに、格納する値は配列でもOKです。
global キーワードを使用することでグローバル変数になります。
function f1() { global $a ; $a = 100 ; echo "$a\n" ; } function f2() { global $a ; $a += 100 ; echo "$a\n" ; } f1() ; f2() ;
実行結果
100 200
http://search.net-newbie.com/php/language.variables.scope.html
デバッグが困難になる場合もあるので注意してください。
グローバル変数にすることが可能なのですね。
これだと変数の扱いに今以上に注意しないといけないですね。
最初の回答にある
function_name($input);
とグローバル変数とどちらが多く使われているのでしょうか。
グローバルスコープから変数をアクセスする2番目の方法は、PHPが定義す る配列$GLOBALSを使用することです。
例 12-3. globalのかわりに$GLOBALSを使用する
<?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b; ?>
配列$GLOBALSは連想配列であり、グローバル変数の 名前がキー、その変数の内容が配列要素の値となっています。 $GLOBALS は スーパーグローバル であるため、$GLOBALSは全てのスコープに存在します。
回答2にあるグローバル変数と同じようなモノですね。
このあたりは注意して使わないと不具合が出たときに
見つけるのが難しくなりそうですね。
ありがとうございます。
returnで指定したものを出すことが可能ということですね。
ありがとうございます。