Contents
これだけは使える様になっておきたいarray系構文
スプレッド構文
array_merge()の代わりにスプレッド構文を使用しましょうね。という話。
「===」で比較する
PHPにおける厳格な比較演算子。
値だけはなく型までを比較する演算子
Javaの様に変数の参照先までを比較することが出来ないのが特徴。
PHPUnit使っていると型の厳格比較までしないといけないので、全て厳格比較にしていくようにした方が良い。
ちなみに否定は「!==」。
NULLの場合の切り替え
表現が正しいかは分からないのですが、変数の値がNULLの場合に切り替えてくれます。
NULL合体演算子と呼ばれています。
$Hello = NULL;
echo $Hello ?? "Not Hello";
//「Not Hello」出力
今までは「Nullだった場合は〜〜を出力する」といったif文を使用した構文を使用していたのですが、
合体演算子を使用することで可読性のある構文にすることが出来ました。
※文字出力のみでしか使用する場面が思いついていない現状です。
if文本来の条件ごとの処理といった場面は考えることが出来ていません。
var_dump()って見づらいよねぇ
PHPで配列に何が入っているか確認するときに多用するvar_dump()って見づらくないですか?
そんなときは<pre></pre>で囲ってあげましょう。
最高に見やすくなります。
echo '<pre>';
var_dump($test);
echo '</pre>';
/*
*結果
*array(5) {
*[0]=>
*string(51) "口が臭いのにタバコを吸い続けるの?"
*[1]=>
*string(33) "あなたの意思はゴミです"
*[2]=>
*string(54) "タバコ辞めるか人間辞めるかの二択です"
*[3]=>
*string(45) "今日で最後の一本にしてください"
*[4]=>
*string(15) "ばーーーか"
*}
*/
PDF表示/ダウンロード
PHPでPDFの表示/出力はheader()で管理するため、微妙な調整が必要。
- 表示ならheader('Content-Disposition: inline; filename="'.$output_filename.'"');
- ダウンロードならheader('Content-Disposition: attachment; filename="'.$output_filename.'"');
- ブラウザ表示からダウンロードさせる場合は、キャッシュの制御が必要
- S3保管のPDFならメタデータをechoさせる
PDOデバッグ
PDOでエラーが出たが、エラーの内容が分からないときに走っているSQLを見ることが出来る。
詰まったらdebugDumpParams()でreturnしろ。
return $stmt->debugDumpParams();
If文一行
<?=(条件式)?trueの場合:falseの場合?>
<?=(isset($a))?"trueだよ":"falseだよ"?>
if文を一行で書く方法。
「<?=?>」タグで囲うことで出力までやってくれるよ。
フォーム入力のバリデーションでよく使う。
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<?=(isset($error))?$error:''?>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
</form>