• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:型変換プログラムで)

型変換プログラムで疑問!同じ変数でも実行結果が異なる理由は?

このQ&Aのポイント
  • 型変換プログラムで質問です!以下のプログラムで実行結果が異なる理由について疑問があります。
  • プログラムの6行目と12行目で同じ変数に対してgettype関数を使用していますが、実行結果が異なるのはなぜでしょうか。
  • booleanとstringの違いについて、詳しい方からの回答をお待ちしています。

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

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

>>同じ変数のTRUE TRUE と "TRUE" は全くの別物です。 Boolean値には TRUE・FALSE という2種類の値のみが存在します。前者はそれです。 後者はたまたまString値の中身が「TRUE」という文字列だっただけ、それだけのことです。 マニュアルよりこっちのほうが初心者向けかな? http://www.shigeweb.jp/php/project_p/?page=type§ion=first

javascriptphp
質問者

お礼

ありがとうございました。 http://www.shigeweb.jp/php/project_p/?page=type§ion=first をよく読んでみます。

その他の回答 (5)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.6

理由は既に出ているので。 型変換 文字通り、型を変換することです。 "100"というようなstringを、100とintに変換して計算する、とか 50というintを"50"という文字列に変換して、文字列結合させる、とか gettype($var)の値は変化していますが、$varには、それぞれの型の定数を「代入」しているだけで、変換されているわけではありません。 gettype関数は、指定した値の型を「判定」しているだけで、変換はしていません。 プログラム6 プログラム12 一連の動作をまとめたもの全体で「プログラム」です。 「プログラム6」という言い方だと、これと同じような「プログラム」が複数あって、そのうちの6番目、という風に感じられます。 今回の場合なら「6行目」「行番号6」等と「行」という用語を使います。 プログラミング用語を間違えると、相手に伝わらないことがあります。 正しく使いましょう。 今回は、「型変換」が質問とは関係なかったこと、プログラム6が行番号6のことだと推測できたこと、で特に問題になっていませんが、今後もうまくいくとは限りません。

noname#244856
noname#244856
回答No.5

掘り返すようで悪いですが… http://okwave.jp/qa/q8071704.html agunuzさんと同じ趣旨のこと言ってますよ? どこが反対なのでしょうか… あとそんなにぶっきらぼうな言い方じゃなくて、的確に指摘されてるだけなのに、その程度で回答禁止で躍起になってるぐらいじゃ… プログラミングの習得へのスピードには個人差があって当然ですが、「教わる」姿勢を忘れないでください。

javascriptphp
質問者

補足

 人間生きていると頭にくることもあります。 我慢することも大切ですが、もっと大切なことは 自分の意見をはっきり言い切る気合いが大切です。  今はそんな心境です^^

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

> 同じ変数のTRUE ――ここの考え方が間違っているかと。 「同じ変数」というなら$varですが、変数は一緒ですが、その値は別物ですので。 論理型リテラルtrueと文字列型リテラル"TRUE"は、評価次第では一致することがありますが、逆に一致しないことも多々あります。 詳しくは、phpのマニュアルをご覧ください。 http://www.php.net/manual/ja/language.types.intro.php

javascriptphp
質問者

お礼

ありがとうございました。 http://www.php.net/manual/ja/language.types.intro.php のリンク先をよく読んで勉強します。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

プログラム言語には、ざっくり分けて、コンパイラ言語とインタプリタ言語に分かれます。 このように同じ名前の変数が違う属性になるのは幾つかのインタプリタ言語の特徴です。 基本的に変数の定義という概念が存在しません。 右辺の結果を左辺で書かれた変数名で作るので、変数名は左辺に出てくる度に再作成されると考えて下さい。 それ以前の変数は削除されます。 この変数の自動削除というのもインタプリタ言語の特有な仕組みです。

javascriptphp
質問者

お礼

 ありがとうございます。 今の私の知識だと理解するのは難しいですが、PHPはコンパイルが不要でインタプリタであることは理解しています。  何となくわかるような気がしますが  徐々に理解を深めていきたいと思います。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ダブルクォーテーションまたはシングルクォーテーションで囲むと文字型になります。 TRUEはPHPの定数(boolean)です。

javascriptphp
質問者

お礼

有難うございました。  よくとちりますが_ _ 良く見ると"TRUE"でWクォーテーションがついていました。"囲むと文字型"了解しました^^

関連するQ&A