質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2069閲覧

php の if の評価は boolean へのキャストと同等ですか?

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/07/07 05:37

表題の件、PHP では if($x) とすると、$x を評価して、TRUE or FALSE で分岐する認識です。
その際の評価ですが、(bool)$x と同じ評価となるのでしょうか?

マニュアルには以下の記載があります。
if

式のセクションで 記述したように式は論理値で評価されます。 式が TRUE と評価された場合、 PHP は文を実行します。FALSE と評価された場合は、これを無視します。どのような値が FALSE と評価されるかについては論理値への変換 を参照してください。

論理型 (boolean)

boolean に明示的に変換を行うには、キャスト (bool) または (boolean) を使用します。しかし、演算子、関数、制御構造が boolean 型の引数を必要とする場合には、値は自動的に変換されるため、 多くの場合はキャストは不要です。

マニュアルを読む限り正しいと思うのですが、最近 論理型に対して大きな勘違いをしていたため、ズレていないか確認したく質問しています。

ざっと確認した限り、正しそうなのですが。。。

php

1$value:true 2(bool)$value:true 3if($value):true 4===== 5$value:false 6(bool)$value:false 7if($value):false 8===== 9$value:1 10(bool)$value:true 11if($value):true 12===== 13$value:0 14(bool)$value:false 15if($value):false 16===== 17$value:-1 18(bool)$value:true 19if($value):true 20===== 21$value:'1' 22(bool)$value:true 23if($value):true 24===== 25$value:'0' 26(bool)$value:false 27if($value):false 28===== 29$value:'-1' 30(bool)$value:true 31if($value):true 32===== 33$value:NULL 34(bool)$value:false 35if($value):false 36===== 37$value:array ( ) 38(bool)$value:false 39if($value):false 40===== 41$value:'php' 42(bool)$value:true 43if($value):true 44===== 45$value:'' 46(bool)$value:false 47if($value):false 48=====

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その認識であっていると思います。

PHP: PHP 型の比較表 - Manual にも boolean : if($x) と明記されていますし。

if の判定式に入れたり、== で緩い比較をする際に、自動で boolean にキャストされて判定されるイメージです。

投稿2017/07/07 05:53

miyahan

総合スコア3095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/07 07:06

ご紹介いただいたページの boolean : if($x) という記述を追いかけるうちに混乱してこの質問をしたので、できればこれ以外の根拠があるとうれしいのですが、直接的な記載か、検証コードがあったりしないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問