PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
Q&A
解決済
5回答
1468閲覧
総合スコア40
1グッド
0クリップ
投稿2019/03/27 05:38
1
0
下記のように、$cat_slugの値が、abc、もしくは efg の時、"記事を公開しました。"を表示する条件分岐を書いたのですが、$cat_slugを2回使っています。 $cat_slugを1回のみ使用する書き方はできないでしょうか?
PHP1if ($cat_slug == "abc" || $cat_slug == "efg") { 2 echo "記事を公開しました。"; 3}
PHP
1if ($cat_slug == "abc" || $cat_slug == "efg") { 2 echo "記事を公開しました。"; 3}
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答5件
PHP1if ( in_array( $cat_slug, [ "abc", "efg"], true ) ) { 2 echo "記事を公開しました。"; 3}
1if ( in_array( $cat_slug, [ "abc", "efg"], true ) ) { 2 echo "記事を公開しました。"; 3}
【in_arrayを使うときは黙って第三引数を付けること - Qiita】 https://qiita.com/ritukiii/items/3a6add378ae089ab5d70
投稿2019/03/27 05:41
総合スコア69643
回答へのコメント
退会済みユーザー
2019/03/27 05:56
2019/03/27 06:07
2019/03/27 07:04
2019/03/27 07:43
出現1回のみなら何でも良いというのでしたら
php1$check = ['abc','efg']; 2foreach($check as $word){ 3 if($cat_slug === $word){ 4 echo '記事を公開しました。'; 5 break; 6 } 7}
php
1$check = ['abc','efg']; 2foreach($check as $word){ 3 if($cat_slug === $word){ 4 echo '記事を公開しました。'; 5 break; 6 } 7}
投稿2019/03/27 06:49
総合スコア80888
2019/03/27 07:45 編集
別のやつ
php1<?php 2$cat_slug = 'abc'; 3// $cat_slug = 'def'; 4$test = [ 5 'abc' => true, 6 'efg' => true, 7 ]; 8if (isset($test[$cat_slug])) { 9 echo "記事を公開しました。"; 10}
1<?php 2$cat_slug = 'abc'; 3// $cat_slug = 'def'; 4$test = [ 5 'abc' => true, 6 'efg' => true, 7 ]; 8if (isset($test[$cat_slug])) { 9 echo "記事を公開しました。"; 10}
投稿2019/03/27 06:29
総合スコア0
いちおう参考までに
PHP1//$cat_slug="abc"; 2$cat_slug="efg\n"; 3if(preg_match("/\A(abc|efg)\z/",$cat_slug)){ 4 echo "OK"; 5}else{ 6 echo "NG"; 7}
1//$cat_slug="abc"; 2$cat_slug="efg\n"; 3if(preg_match("/\A(abc|efg)\z/",$cat_slug)){ 4 echo "OK"; 5}else{ 6 echo "NG"; 7}
投稿2019/03/27 05:52
総合スコア118161
ベストアンサー
in_arrayを使ってみましょう(リファレンス)。
in_array
php1if(in_array($cat_slug, ['abc', 'efg'])) { 2 echo "記事を公開しました。"; 3}
1if(in_array($cat_slug, ['abc', 'efg'])) { 2 echo "記事を公開しました。"; 3}
PHPの==は意外な動作が多く、たとえば0 == 'abc'すらtrueとなってしまいます。よほど狙って書く場合を除いて、文字列比較は===で行う(in_arrayの場合は第3引数をtrueにする)ようにしましょう。
==
0 == 'abc'
===
true
投稿2019/03/27 05:44
総合スコア146832
2019/05/20 15:59
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
PHP条件分岐の書き方
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/27 05:56
2019/03/27 06:07
退会済みユーザー
2019/03/27 07:04
2019/03/27 07:43