
No.1ベストアンサー
- 回答日時:
> $param = isset( $argv[1] ? $argv[1] : 'default';
isset の括弧が閉じていない!
……というツッコミは置いといて、自分ならどちらも使います。
どちらを使うかは、
・条件演算子を使っての記述が 1 行 80 文字以内になる
・使う条件演算子が 1 つのみ
・条件文が関数呼び出しのみか比較演算が 1 つのみ
をすべて満たす場合に条件演算子の方を使います。
なぜならば、条件演算子を使った上記のいずれかを満たさない記述は途端に読みにくくなるからです。
(例)
$param1 = isset($argv[1]) ? "Yes, this parameter is set. No probrem!" : "On no! this parameter is not set. This is great probrem!!!";
$param2 = isset($argv[1]) ? (isset($argv[2]) ? 2 : 1) : (isset($argv[2]) ? 1 : 0);
$param3 = ($a < 2) && ($b !== 3) ? "good!" : "oops!";
まあ、自分のホームグラウンドは C++ なので、PHP の場合の流儀とは違うかもしれませんが。
ご回答誠にありがとうございました。
参考になります。
最初うちは、文字は多くなりますが、if文が分かりやすいみたいですね!
myいわく!心配無用にならないようスキルupが肝要ですが^^
No.4
- 回答日時:
総論として、処理が単純でかつ永続的に処理内容が変わらなさそうな場合には三項演算子を使います。
ご提示の例は引数のチェックをしているのですよね。引数のチェックの場合、
・項目が存在しない場合
・項目は存在するが空文字で送信された場合
を区別して処理したり、エラーメッセージのセットをそこで行ったりと、処理の内容が変わる可能性が高いといえます。
将来変更の可能性が高いので、このようなケースでは私はif文を使います。
ご回答誠にありがとうございました。
IFがいいみたいですね!
現在の私のスキル!では、まだまだ心配無用なので、基本のC言語からです。
以上の懸念が役に立つ日を夢見て日々努力します。
No.3
- 回答日時:
提示された例であれば、間違いなく三項演算子で書きます。
使わないケースとしては、基本的にはマニュアルのとおり「積み重ねて」使うことはないです。
RTFM
http://www.php.net//manual/ja/language.operators …
if の入れ子の方が直感的にわかりやすいです。三項演算子の「積み重ね」は書くときはいいけど、あとで他人(一週間後の自分は他人です)が読むときにすらすらとは読めないので。
あと記述が長くなって ? や : の位置がわかりにくいケースでは多少の工夫はしますね。
No.2
- 回答日時:
所定の条件で特定の変数に別々の値を代入するのであれば
そのための処理が三項演算子なので(1)を使うのが妥当でしょう
もしここで三項演算子を使わないのであれば、ほかで使うところはありません。
ifでの条件分岐は、複数の代入や実行ができるので、$paramに値を入れるだけが
目的であればプライオリティは低いでしょう
ちなみに$paramの初期化を考えるのであれば
$param = 'default';
を先に宣言しておき
条件分岐の際
if(isset( $argv[1])) $param = $argv[1];
とするのでもよいでしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語 配列とポインタについて 3 2023/02/09 22:53
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP phpでこの記述をもっと簡単に書く方法はないでしょうか…? 3 2022/11/16 19:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
Smartyにて、文字検索
-
入れ子になっているHTMLタグも...
-
ローカル環境でのメール送信
-
トランザクションが原因?DBに...
-
JSPにてMySQLのBLOB型の画像の...
-
PHPのsafemodeとは?
-
ユーザー認証でユーザーID毎に...
-
【file_exists】ファイルが存在...
-
URLの変わらないページをPHPで...
-
フォームで戻った際に入力済み...
-
PHPファイルの中身が見られるこ...
-
VBSの「MsgBox」について
-
FORMで送信ボタンと戻るボタン...
-
FTPコマンドでディレクトリごと...
-
ボタンのクリック数を合計保存...
-
別サーバのプログラムを起動
-
日本語をGETで渡す場合UR...
-
php経由のMySQL
-
Subversionのリポジトリの削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPが処理を途中でやめる。原因...
-
phpの処理中に画面表示ををする...
-
Smartyにて、文字検索
-
PHP内、ボタン押下と同時にリロ...
-
インスタンス化に伴うメモリ消...
-
フォームが送信されたかの確認...
-
APIで出てきたXMLをPHPで表示さ...
-
大量チェックボックスの実装方...
-
デバッグの仕方・・・
-
PHPの変わった閉じタグの必要性...
-
入れ子になっているHTMLタグも...
-
デフォルト、フロントコントロ...
-
タイムアウト時に次の処理へ移...
-
PHPで偶数と奇数を判断するには
-
CakePHPでのemptyの 0 判定に関...
-
Cronで同じ処理を複数同時に実...
-
チェックボックスをビット演算...
-
PHPの書き方について
-
条件分岐 if(elseif) switchの...
おすすめ情報