人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでの質問です。

functionの中で

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

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

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP データ 作成 記述
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● crono
●27ポイント

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

外にに出すなら

$a = function_name($input);

$c = $a + $b;

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

function function_name($input_value){

?処理?

return $out_value;

}

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

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

◎質問者からの返答

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

ありがとうございます。


2 ● GEN111
●27ポイント

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);

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


3 ● いのくに
●26ポイント

グローバルスコープから変数をアクセスする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にあるグローバル変数と同じようなモノですね。

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

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

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ