2015.10.20
0からはじめるPHP#46【アジャイルで作る掲示板#5-ラジオボタンの保持と三項演算子-】
今回は
めっちゃ基本的な話に戻ります。
前回ラジオボタンの保持方法が分からない・・・・・・ということをぼそっとつぶやきましたが、実はそんな難しい話でもなかったりします。
こんな風に、条件分岐を用いれば良いようです。
具体的にいうと、old('文字色')には文字色に対応したvalue値が入っているそうで、それを条件分岐で照合することでチェック状況が分かるそうです。
ラジオボタンやチェックボックスの保持はこれでできます。
リダイレクトのフォーム保持は自前でやると結構めんどくさいと思うので、こういうのはなるべくフレームワークのシステムを利用したいですね。とりあえずできるようで安心しました。
ちなみに残った課題としては
デフォルトでプレビューはONにしたいけど、OFFをクッキーでどう保存すべきかみたいな話ですが、これは訪問したら無条件に挿入される値をチェックすることで確認できると思うので、たぶんそれで大丈夫でしょう。
さて、タイトルの
三項演算子ですね。
これはプログラミングのかなり基本的な知識だと思うのですが、
使用はあまり推奨されていないので、僕は今まで使ったことがありませんでした。
ただ、使い方によっては効果的であったりするので、知識としては持っておいてもいいかなという話です。
このような処理で実装されます。
無闇にこれを使うと
可読性の低いコードになるので推奨されないのですが、上の例のような、場合はコンパクトにまとめた方が見やすいわけですね。
|
print((old('文字色')== "free") ? " checked" : "");
|
とりあえずこう書いとけば、old('文字色')がfreeであればchecked、そうでなければ何も出力しない、というものが言えることになります。
条件分岐は基本的にif文を使うべきだと思うのですが、このような短い処理の場合、無駄に行数を増やすとかえって見難いので、そういう時はこうやって三項演算子を使うとスマートだったりします。
プログラミングは見やすさ重視でやることで、バグの発見もしやすいですし、処理の行方も追いやすいです。
三項演算子は基本的にダメ、って言われてますし、僕もそう思いますけど、こういうケースでは積極的に使うべきです。ということで、知識の一つとして取り入れておきましょうか。
最近、週末に遊んで、その影響で月曜は日記書いたり覆面調査のレポートを書いたりと、時間が食われてなかなか作業が進んでいませんが、ようやくタスクを消化できたので明日からは平常運転に戻せそうです。ということで早起き頑張ります。(笑)