PHPやJavaScriptのコードを見ていて、「if(!$a)~」の「!」とか「~!==NULL」の「!」をよく見かけますが、「!」は何なんでしょうか
エスケープシーケンスの一種なのでしょうか
追記
否定する意味であるなら、例えばif文で「false」を用いるのと何か異なるんでしょうか
あと否定するくらいなら最初からそのコードを書かなければいいと思うんですが、わざわざ「!」を用いらなければならない処理やコード、あと意味とはどんな内容なのでしょうか
追記
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
プログラムの基本的な書き方・読み方が分かるまでは、入門書を拾い読みせずきっちり読み切りましょう。
あるいは、文法はリファレンスに解説があります。
PHP: 演算子 - Manual
!
を知らないレベルであれば、このページの目次からのリンクを全部読みましょう。
投稿2016/08/05 00:30
総合スコア84557
0
否定演算子です。
「!=」でノットイコールを表します。
###追記
質問の追記を受けて。
まぁ何にでも疑問を抱くのは大事だと思います。
さて質問者さんが言われるように確かに否定演算子がなくてもコーディングは出来ますが、
否定演算子があることで効率の良い書き方・可読性の高い書き方が実現出来ます。
たとえば1から10の値のいずれかが入る変数があり、
値が5以外なら表示したいとした場合
否定演算子がないとすると以下のようなコードになります。
PHP
1$i; // 1〜10のいずれかが入るとする 2if ((1 <= $i && $i <= 4 ) || (6 <= $i && $i <= 10)){ 3 echo $i; 4}
これが否定演算子があることで以下のように書けます。
PHP
1$i; // 1〜10のいずれかが入るとする 2if ($i !== 5){ 3 echo $i; 4}
要するに何とかでない場合に限って処理をしたい場合は、
〜でないという表現をそのままプログラムに記載できる方が、
- 記述量が減る
- 意図が明確
- 可読性も高い
の3つのメリットがあるのです。
投稿2016/08/04 23:59
編集2016/08/05 03:30総合スコア1636
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
あと否定するくらいなら最初からそのコードを書かなければいいと思うんですが、わざわざ「!」を用いらなければならない処理やコード、あと意味とはどんな内容なのでしょうか
例えば、案件管理のシステムで、受注状況を検索する機能があるとします。
(受注状況:「引合」、「社内見積」、「見積提出」、「受注」、「失注」、「作業完了」)
その場合、「作業完了」以外のデータを取得したい場合に、
if(受注状況 != "作業完了")
とすると「作業完了」以外のデータが取得できることになります。
!を用いらない場合は、
**if(受注状況 == "引合" || 受注状況 == "社内見積" || 受注状況 == "見積提出" || 受注状況 == "受注" || 受注状況 == "失注") **
といったように長いコードを書かなければなりません。
投稿2016/08/05 01:13
総合スコア30
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
PHPのコードに関しては様々な回答者様が記載されているので、追記部分のみを…
<!DOCTYPE HTML>の「!」はなんでしょうか追記
これはHTMLの文書宣言ですね。
1行目に記載するHTMLの文書宣言では、タグ名の1文字目に普段絶対使われない!記号を用いる事で、
これは絶対に他と区別しなければならない特別なタグとして強調しているわけです。
なので、もしHTMLで<DOCTYPE>
というタグを宣言したくなった場合でもそのまま宣言出来るわけです。
そして、ブラウザーは1行目に宣言されている文書宣言である<!DOCTYPE>
を読み込む事で、<DOCTYPE>
と混同してしまう事はなくなります。
(まぁDOCTYPEなんてタグ名を使う事はほぼ無いと思いますが、HTML5の世界は一応好き勝手なタグ名が付けられますので…)
投稿2016/08/05 05:01
総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。