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

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

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

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

Q&A

解決済

4回答

2216閲覧

三項演算子条件式の省略の解釈について

yoshipu

総合スコア115

PHP

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

0グッド

0クリップ

投稿2016/09/13 07:02

編集2016/09/13 07:15

次のコードの条件式の意味を教えていただけないでしょうか?
ネットで三項演算子であろうということは分かります。
条件式を省略することに関して調べましたがわかりませんでした。

1は変数$kazuと1が同じならば~だとわかります。
2は変数に値が入っていますという意味でしょうか?

$kazu = 3; 1. <?=($kazu == 1? '1です': '1ではない')?> //結果 1でない 2. <?=($kazu?'変数kazuは値があります':'変数kazuは値がありません')?>//結果 変数kazuは値があります

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

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

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

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

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

guest

回答4

0

ベストアンサー

三項演算子の構文は以下です。

条件式 ? 式1 : 式2

条件式がTRUEなら式1、FALSEなら式2を返す。これだけです。
質問のコードの場合、
$kazu == 1 → $kazuが1の場合TRUEで式1、それ以外はFALSEで式2
$kazu → $kazu自身がTRUEの場合式1、それ以外は式2
PHPにおいて変数がTRUEかFALSEの定義は、下記を参照してください(boolean に変換する場合の箇所)
http://php.net/manual/ja/language.types.boolean.php
今回の場合、$kazuには整数値が入っているので型はinteger型になると思います。
integerの場合、0はFALSE、0以外はTRUEになります。
なので、
$kazu?'変数kazuは値があります':'変数kazuは値がありません'
これは間違いで、これが正しいです。
$kazu?'変数kazuは0ではありません':'変数kazuは0です'

投稿2016/09/13 07:49

ttyp03

総合スコア16998

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

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

yoshipu

2016/09/13 08:02

$kazu → $kazu自身がTRUEの場合式1、それ以外は式2 という記述ですごくわかりました。phpマニュアルページで書かれているところは努力不足ですべてはわかりませんでした。
guest

0

false、0、0.0、空文字列、'0'、空の配列、NULL以外はすべてtrue扱いとなります。

PHPの論理値

投稿2016/09/13 07:07

maisumakun

総合スコア145183

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

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

0

値が入っているかどうかというより、値がtureを意味するか、falseを意味するかです。

!emptyとの違いは、未定義変数でNoticeがでるかどうかが違います。
変数$aに値を入れずに以下を実行した場合、下の結果はNoticeになります。

php

1echo !empty($a)? 1 : 0;; 2echo $a ? 1 : 0;

投稿2016/09/13 07:23

popobot

総合スコア6586

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

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

0

三項演算以前にifと同じで条件節でtrueまたはそれに同等かをチェックしています
具体的にはここを参考にしてください
「PHP 関数による $x の比較」のboolean値を見ればよいでしょう。
ご指摘の通りちょうど!emptyになっていますね

投稿2016/09/13 07:17

yambejp

総合スコア114808

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問