• ベストアンサー

ユーザー関数の外の変数は呼べない?

以下のコードでpiyoを呼ぶには、hogeを渡すしかないのでしょうか? $hoge="piyo"; function func(){ echo $hoge; } func();

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

$hoge="piyo"; function func(){ global $hoge; echo $hoge; } func(); で一応できます、が・・・ global宣言はソースコードを汚くする大きな要因となるので、可能な限り使わないでください。

balestrieri1720
質問者

お礼

既にある変数を関数内でグローバル化できたのですね! 勉強になりました。有難う御座いますm(_ _)m

すると、全ての回答が全文表示されます。

関連するQ&A

  • phpの変数宣言の仕方

    php初心者です。 以下のように書きたいのですが出来なくて困っています。 他の関数からも$hogeを参照したいので関数testの中で宣言はしたくないです。 $hoge = 'ほげほげ'; function test() { echo $hoge; } test(); いちいちこうしないとダメなんでしょうか? $hoge = 'ほげほげ'; function test($hoge02) { echo $hoge02; } test($hoge); スマートな書き方を教えてください。 よろしくお願いしますm(_ _)m

    • ベストアンサー
    • PHP
  • 変数が大量にありすぎて美しくない!

    私は、こういうコードをよく書きます。 my $TDN = &func_hatten(8,10); my $TON = &func_hatten(2,55); my $MUR = &func_hatten(4,55); my $YJSNPI = &func_hatten(7,55); my $HOGE1 = &func_hatten(1,55); my $HOGE2 = &func_hatten(9,55); my $HOGE3 = &func_hatten(1,55); my $HOGE4 = &func_hatten(9,55); 変数に、関数の戻り値を放り込むのですが、これが30個、40個もひとつのコードに書き込むのは美しくないような気がしています。 こういう場合は、プロの世界ではどうするのが「一般的」でしょうか?

  • 【PHP】関数で処理が止まってる??

    お世話になります。 PHPでの質問ですが、PHPに限ったものではないように思いますので、プログラム全般に対しての質問と思って下さって結構です。 ※PHP特有のという意見があれば、それも大歓迎です。 下記のようなコードを組んでみました。 <?php echo "func1の結果["; echo func1(); echo "]"; function func1(){ (内容は割愛) return TRUE; } ?> このコードをアップしてアクセスしてみると   出力結果  func1の結果[ でした。 ブラウザのステータスに「ページが表示されました」とあるので、処理中で出力待ちということはないと思います。 > echo func1(); > echo "]"; の箇所の出力はどうなっていると考えればいいのでしょうか? 「関数の内容次第で・・・」とお答えになる方、どういう内容だとこのような結果になるのかというところでお答えください。 私のプログラムによる根本的な考え方は、プログラムは上から下に順番になので、 上記内容の箇所にどんなコードがあったとしても、func1関数はTRUEを返すので、結果としては「func1の結果[1]」となるはずでした。 でも実際の出力結果をみると処理が途中で(おそらくfunc1()内で)止まっているともいます。 timeoutではないため無限ループに嵌ってっていうのもないと思います。 これはどういうことでしょう???

    • 締切済み
    • PHP
  • 即時関数でプライベート変数的になってる理由を教えて

    即時関数内で、プライベート変数的な動きになっている(?)コードがあるのですが、呼び出せない理由を教えてください ・呼び出せる例1 (function() {  hoge2 = 'ホゲ2'; })() console.log(hoge2); ・呼び出せる例2 (function() {  var hoge1 = {};  hoge2 = 'ホゲ2'; })() console.log(hoge2); ・呼び出せない例 (function() {  var hoge1 = {},hoge2 = 'ホゲ2'; })() console.log(hoge2); ■質問1 ・どうして呼び出せないのでしょうか? ・varでローカル宣言(?)してるhoge1オブジェクトに紐づいているから? ・つまり、hoge2オブジェクトを生成している場所が違う? ■質問2 ・呼び出せない状態の時、hoge2はプライベート変数になっているのでしょうか? ■質問3 ・そもそもどうして呼び出せるのでしょうか? ・即時関数は(名前もしくはスコープ)空間を作り閉じ込めるので~、という記述を、どこかで見かけたような気もするのですが…

  • return (A && B) || 0;

    下記コードはどういう意味でしょうか? ・piyo[b] と piyo[b][a] または 0を返す? ・条件分岐もないのに? ・もしかして条件式を返す? ・あるいは、piyo[b] と piyo[b][a] を返す。または 0? ・ビット演算子? hoge = function(a, b) {  return (piyo[b] && piyo[b][a]) || 0; };

  • awk内でsystem関数を使用しfunction

    環境:AIX5.2 シェル:ksh を使用してシェルを作成しています。 awk内でsystem関数を使用しfunctionを呼び出す事は可能でしょうか? 実現したい内容は以下です。 ・awk内で同一シェルに記述されたfunctionを呼び出す ・functionを呼び出す際には引数を渡す 記述イメージ的に以下のような感じでスクリプトに記述していますが、 system関数内で呼び出そうとしているfunctionをfunctionとして 認識できないのでは??っという疑問を持ち始めてます。 function hoge{  HOGE=$1 echo ${HOGE} } awk'{ BEGIN{FS=":"} system(hoge AAA) }'

  • ボタンクリックした際、id末尾を取得してそれを利用

    ■やりたいこと ・下記処理を一度に行いたい ・各ボタン毎にクリック判別するのではなく、まとめて出来ないでしょうか? ・ボタンクリックした際id名がhoge以下を取得 ・jQueryでloadする際、puyoに取得した内容を足したい ■現状HTML <input type="button" id="hoge1" value=""> <input type="button" id="hoge2" value=""> <input type="button" id="hoge3" value=""> ■現状JS $("#hoge1").click(function(){  $('#piyo').load('puyo1.html'); }); $("#hoge2").click(function(){  $('#piyo').load('puyo2.html'); }); $("#hoge3").click(function(){  $('#piyo').load('puyo3.html'); });

  • 関数内のグローバル変数の参照について

    はじめまして。 質問があります。 まずは以下のコードを見てください。 ---------------------------------------------------------------- <html> <head> <title>関数内のグローバル変数について</title> <script type="text/javascript"> <!-- function func1() { a = "あああ"; } //--> </script> </head> <body> <script type="text/javascript"> <!-- func1(); // ---(1) document.write("a="+a+"<br>"); // ---(2) //--> </script> </body> </html> ---------------------------------------------------------------- 上記の(1)と(2)について、上記の順番で記述すると、文字列がブラウザに 出力されるのですが、(1)と(2)の記述順を入れ替えるとIE6.0もNetscape 7.1も「aは宣言されていません。」という内容のエラーが発生して ブラウザに文字列が表示されません。なぜこのようなエラーが発生する のでしょうか?ご教授お願いします。

  • phpで配列の重複する項目を多い順に並べたいです!

    $a = array("hoge","piyo","hoge","banana","hoge","piyo"); ↓ $b = array("hoge","piyo","banana"); みたいな配列があったとき、上のように重複する項目をまとめて、 さらに多い順に並び替えるにはどのようなコードを書けば良いですか?

    • ベストアンサー
    • PHP
  • 配列の中身を全て順番に別の関数へ引数として渡すには

    配列の中身を全て順番に別の関数へ引数として渡すには、どうすればよいでしょうか? このままだと、'null' は Null またはオブジェクトではありません。 となります。 function piyo(hoge){ alert(hoge); } for (var i = 0; i < hogearray.length; i ++) { piyo(hogearray[i]);//ここを通ったら、順番の関数を呼び出すようにしたい } また、グローバル変数として渡すには、どうすればよいでしょうか?

このQ&Aのポイント
  • XK100のコピー機能を利用して原稿をガラス面に載せた際、一部の端がけられずにコピーされない問題が発生しています。
  • キヤノン製品であるXK100を使用して原稿をガラス面に載せてコピーする際、一部の端がけられないため、コピーがうまく行われません。
  • XK100のコピー機能を使用して原稿をガラス面に載せると、一部の端がコピーされずに残ってしまう問題が起きています。
回答を見る

専門家に質問してみよう