• ベストアンサー

URL変数が定義されているかどうか調べる

PHPで、http://127.0.0.1/test.php?hensuu=Y というページをオープンした場合、 echo $hensuu; if (defined("hensuu")) { echo "Y"; } else { echo "N"; } 最初のecho文ではちゃんと"Y"を出力されるにもかかわらず、次のif文では"N"と出力されます。 URL変数が入力されたかどうかを確認するのにdefinedは使えないのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

defined()は変数でなく、定数が存在するかどうかを調べる関数です。 変数が存在するかどうかを調べるときは、isset()を使います。 http://jp.php.net/manual/ja/function.defined.php

kochin01
質問者

お礼

definedじゃなかったんですね。ありがとうございました。

関連するQ&A

  • [ExcelVBA] Module1で定義した変数の(代入した)値を、Module2でも使う方法

    基本中の基本のことで誠に申し訳ございません。 ある標準Moduleで宣言した変数に値を代入します。 その後、別のModuleでその変数を使用しますが、 その変数の中の値が消えてしまいます。 たとえば下記のように、プログラムを書きます。 test1を実行すると、続いてtest2も実行されます。 この場合、変数の値が0になってしまいます。 このような場合どうやったらいいのでしょうか? Hensuu1の値をセルに一度出力させて、 別のModuleで、セルの値をもう一度変数に代入させて使用する という方法で何とかしていたのですが、大変で困っています。 Module1に記載------------ dim Hensuu1 as integer sub test1() Hensuu1 = 100 test2 end sub ------------------------- Module2に記載------------- sub test2 range("A1") = Hensuu1 end sub --------------------------

  • javascriptとphpの変数のやり取り

    ある該当ページ(mtの検索結果ページ)が拡張子をphpにできず、 <script src=hogehoge.php></script>でphpファイルを読み込んで、 実行したいと思います。 phpを使用している理由はある変数を取得したいのですが、 今回は関係ないので割愛します。 ■以下ソース ・該当ページ(mt-search.cgi) <html> <head> <title>hoge</title> <script type="text/javascript" src="/hogehoge.php"></script> </head> <body> <script> document.write("<p>"+str+"</p>"); </script> </body> </html> ・phpファイル(hogehoge.php) <?php if(test == test){ $str = "成功" }else{ $str = "失敗"; } ?> <script type="text/javascript"> <!-- var str= "<?php echo $str?>"; --> </script> このようにしているのですが、 うまく出力されません。 php側の出力はうまくいっているようなのですが、 ブラウザ側の方でちゃんと変数がわたっていないようです。 画面は真っ白です。 ご教授お願いいたします。

  • セッション変数の受け渡しができない

    a.php: <?php session_start(); $_SESSION['test'] = "ok"; echo "<html><body>\n"; echo "<pre>\n"; var_dump($_SESSION); echo "</pre>\n"; echo "<a href=\"./b.php\">結果ページへ</a>"; echo "</body></html>\n"; ?> b.php: <?php session_start(); echo "<html><body>\n"; echo "<pre>\n"; var_dump($_SESSION); echo "</pre>\n"; echo "</body></html>\n"; ?> a.php の表示: array(1) { ["test"]=> string(2) "ok" } 結果ページへ b.php の表示: array(0) { } 再読込みでも同様です。 php.ini の Session 関係の項目は書籍やウェブサイトを参考にしておかしなものはないと自己判断していますが、指摘されるものを掲載します。

    • 締切済み
    • PHP
  • この中でカウンタ変数はどれですか? <?ph

    この中でカウンタ変数はどれですか? <?php for($i = 0; $i <= 4; $i++) { if($i === 3){ continue; } echo $i."\n"; }

    • ベストアンサー
    • PHP
  • セッション変数にデータをセットする

    下記のPHPプログラムについて 1 <?php 2 // セッションを開始する 3 session_start(); 4 ?> 5 <html> 6 <head> 7 <title>セッション変数にデータをセットする</title> 8 </head> 9 <body> 10 <?php 11 // セッション変数にデータをセットする 12 if (!isset($_SESSION["name"])) { 13  echo "<p>セッション情報をセットしました"; 14  $_SESSION["name"] = "田中"; 15  } 16 echo "<p>名前:".$_SESSION["name"]; 17  18 // セッション変数にデータをセットする 19 if (!isset($HTTP_SESSION_VARS["name2"])) { 20  echo "<p>セッション情報をセットしました"; 21  $HTTP_SESSION_VARS["name2"] = "高橋"; 22 } 23 echo "<p>名前:".$HTTP_SESSION_VARS["name2"]; 24 25 ?> 26 </body> 27 </html> 実行すると 名前:田中 名前:高橋 となるのですが、なぜ13行目、20行目のecho文の内容が出力されないのか不思議です。 echo文の内容が表示がされない理由ついて教えてください。 よろしくお願いします!

    • ベストアンサー
    • PHP
  • URLに含まれた変数の値が0のときの動作

    はじめて質問させていただきます。よろしくお願いいたします。 質問ですが、 http://xxx.xxx.co.jp/xxx/index.php?a=situmon&cid=0 の時に、 $line="./test.txt"; for($i=0;$i<sizeof($line);$i++) { list($title,$comment)=explode("<>",$line[$i]); if($cid == $i ) { echo $title . "<hr>".$comment . "<br>\n"; } } このようなスクリプトで一行取り出したいと思っています。 ですが、$cidが 0 以外の場合は取得できるのですが。 0 の場合取得できません。 どのようにすれば取得できるようになるのかご教授ください。 ------------------ PHP Version 4.3.10 register_global=on $line="./test.txt"; for($i=0;$i<sizeof($line);$i++) { list($title,$comment)=explode("<>",$line[$i]); if($cid == $i ) { echo $title . "<hr>".$comment . "<br>\n"; } }

    • ベストアンサー
    • PHP
  • 変数によるクラスの呼び出しができない

    変数によるクラスの呼び出しができません。 <?php class test { public function test_method () { $return = "test"; return $return; } } $test1 = 'test'; $test2 = 'test_method'; new $test1; echo $test1::$test2 (); ?> 問題が起こっているのは new $test1; echo $test1::$test2 (); の部分の$test1をtestに変更する事で正しく動作します。 実際に使う時には$_GETの入力値から呼び出すクラスの変更を行おうと考えています。 セキュリティー対策として登録済みクラスの対応表を使っての呼び出しを行っているので対応表を if ($_GET["~"] == ~) { new ~; ~::test(); } else... のような形式に出来ないわけではないですが対応表自身が変動する為この方法では対応表の書き換えが大変困難なものになってしまいます。 変数を使った呼び出しの方法は無いもなのでしょうか。 環境はWeb ServerがApache 2.2.0,PHPが5.1.4の状態でmod_suPHP 0.6.1を使っています。

    • ベストアンサー
    • PHP
  • Twigテンプレートエンジンの変数使用について

    初めまして。 題の件について2点の質問にご回答いただけたら幸いです。 ■一点目 Twigテンプレート上だけで変数を指定し、それをIf文として使いたいのですが、 良い方法はありますでしょうか? 下記のイメージで行いたいのですが、試しても出来ないので何か良い方法を探しています。 {% set test = '2012-01-01 01:00:00' %} {% if "now"|date("Y-m-d H:i") > {{test}} %} ■二点目 変数にURLを指定したいのですが、文字列としてしか出てこなくて困っています。 フィルターをかければいいのかとも思ったのですが、どんなフィルタを使えばいいかわからない状態です。 {% set test = 'http://~~~' %} このように変数でURLを指定したいのですが…. どうにかならないでしょうか? なんとかご助力をお願いしますm(__)m

    • 締切済み
    • PHP
  • phpで <?php $x = 8; $y = 8

    phpで <?php $x = 8; $y = 8; $x++; $y--; echo($x)."\n"; echo($y)."\n"; これの呼び名はありますか?いこーるがあるのは変数 これは?式ですか? $x++; $y--;

    • ベストアンサー
    • PHP
  • 変数の中の数字をforで指定したい。

    変数の中の数字をforで指定したい。 配列として、 $sort1[$t] $sort2[$t] ... $sort10[$t] と1~10と添え字をつけた変数を扱うときにfor等の繰り返し関数を使って利用したいのですが、旨く行きません。 for ($n=1; $n<=10; $n++){ $hensuu = '$sort' . $n . '[$t]'; echo $hensuu; } となどとして、$sort1[$t]、$sort2[$t]・・・に入っているデータを表示したいのですが、表示されるのは、 $sort1[$t] $sort2[$t] ・・・ となります。 どうすれば、この変数に入っている値を表示できるのでしょう? この例では10個までしか無いので、forを使わずに全部書いてしまえば良いのですが… 沢山あるときに、シンプルに処理できると助かります。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう