PHPでの質問です。


functionの中で

function ($testdata) {
 $data = 100;
  }

$dataという数値を作成します。
その$dataというデータを別の場所で使用するには
functionの中に何か記述しなくてはいけないのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/01/08 20:24:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:crono No.1

回答回数5ベストアンサー獲得回数0

ポイント27pt

同じ関数内ならそのまま利用可能。

外にに出すなら

$a = function_name($input);

$c = $a + $b;

↑$aに下記の関数の$out_valueの値が入っています。

function function_name($input_value){

~処理~

return $out_value;

}

として$aに格納して利用できます。

ちなみに、格納する値は配列でもOKです。

id:quocard

returnで指定したものを出すことが可能ということですね。

ありがとうございます。

2007/01/06 13:47:09
id:GEN111 No.2

回答回数472ベストアンサー獲得回数58

ポイント27pt

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

デバッグが困難になる場合もあるので注意してください。

id:quocard

グローバル変数にすることが可能なのですね。

これだと変数の扱いに今以上に注意しないといけないですね。

最初の回答にある

function_name($input);

とグローバル変数とどちらが多く使われているのでしょうか。

2007/01/06 13:48:18
id:inokuni No.3

回答回数1343ベストアンサー獲得回数21

ポイント26pt

グローバルスコープから変数をアクセスする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は全てのスコープに存在します。

id:quocard

回答2にあるグローバル変数と同じようなモノですね。

このあたりは注意して使わないと不具合が出たときに

見つけるのが難しくなりそうですね。

ありがとうございます。

2007/01/06 13:49:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません