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

PHPについて質問です。

ユーザー定義関数の外で定義した配列を中で使えるようにしたいのですが、
配列の要素は後から増えたり減ったりするので、
関数内でglobal $b,$cなどとひとつひとつグローバル化するのは面倒です。
たとえば下記のようなスクリプトがあるとします。

$b="人力";
$c="検索";
$ar=array($b,$c);

function test()
{
return $b.$c;
}
echo test();

上記の配列$arの要素すべてをグローバル化して、
ユーザー定義関数内で使えるようにする方法おをしえてください。

Vista、IE、Firefox、最新のXampp、PHP5、 EclipsePDT2を使ってます。
以上よろしくお願いします。

●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ar echo firefox IE PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● y-kawaz
●28ポイント

$GLOBALSを使えば良いと思います。

http://jp.php.net/manual/ja/reserved.variables.globals.php


質問の例ですと test 関数はこんな感じでしょうか?

function test()
{
 return implode("", $GLOBALS["ar"];
}
◎質問者からの返答

ありがとうございます。

参考になりました。


2 ● あのん
●42ポイント ベストアンサー

以下のような事でよろしいでしょうか。

function test()

{

global $ar;

foreach($ar as $key => $value) {

global $$key;

$$key = $value;

}

}

ちなみに上記の場合ですと、変数 $ar に入る配列は連想配列である必要があります。

例にある関数を変数 $ar を global変数として読み込んで実現するだけであれば


function test()

{

global $ar;

return implode('', $ar);

}

で出来ます。

◎質問者からの返答

ありがとうございます。

参考になりました。

関連質問


●質問をもっと探す●



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