■ はじめに
PHPまわりのブックマークやストックがいい加減増えすぎたので、個人的に整理したものです。なお付加価値のない当記事が『この記事は以下の記事からリンクされています』に挙がるのを避けるために、Qiitaの記事についてはリンクは切っています。あとPHPと直接は関係していないけれど下も好きなので挙げておきます。
▼ 初心者向けのまとめは既にある
-
初心者を戒めるPHP
- https://qiita.com/tadsan/items/fb496e450fc27c8c4494
-
PHP初心者は最低限これはやっとけ - 開発に入る前編
- https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5
- PHP: The Right Way
▼ コーディングのアンチパターンのまとめも既にある
-
モダンPHPアンチパターン
- https://qiita.com/tadsan/items/157969b338fd8b782b21
-
PHP: Clean Code (clean-code-php) 蜜柑薬
- https://qiita.com/tadsan/items/c47eb327684530721e8a
-
今日から始められるリファクタリング10選 (1)
- https://qiita.com/nunulk/items/2323b0c30a2cbe5fdb0c
-
今日から始められるリファクタリング10選 (2)
- https://qiita.com/nunulk/items/3a0c4e71afdb14b09748
-
今日から始められるリファクタリング10選 (3)
- https://qiita.com/nunulk/items/8bee711d40e71c767eca
▼ 有名なライブラリやリソースのまとめも既にある
▼ デザインパターンのまとめも既にある
- PHPによるデザインパターン入門 - 目次 - Do You PHP はてな
- GitHub - domnikl/DesignPatternsPHP: sample code for several design patterns in PHP
▼ アルゴリズムのまとめも既にある
-
アルゴリズムまとめ by PHP
- https://qiita.com/kiimiiis/items/cf4e1c1aff940ca72b77
▼ マニュアルを読んで、Packagistを漁って、車輪の再発明を避ける
▼ PHPにもコーディング規約がある
-
PHP PSR一覧 2017年版
- https://qiita.com/rana_kualu/items/f41d8f657df7709bda0f
-
PHPコーディング規約まとめ
- https://qiita.com/hshimo/items/04be1f432240c58300f4
▼ composerでパッケージとautoloadを管理する
-
composer 導入をまじめに考える
- https://qiita.com/notona/items/c5a087d8dd446d315e6e
-
PHP開発でComposerを使わないなんてありえない!基礎編
- https://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94
-
PHPの名前空間とcomposerのautoload (PSR-4) サンプル
- https://qiita.com/yotasasaki/items/cc1a4936c0c92099db5a
▼ php.iniについて
-
PHP 7.1 設定ファイルの記述例 (Apache 2.4)
- https://qiita.com/100/items/635bcb3b4291dc428eda
-
【PHP】php.ini ディレクティブまとめ
- https://qiita.com/rhap/items/5b625685777ab2267e7d
▼ 制御構造としてのイテレータ
-
[PHP]ループのメモリ使用量と処理速度を比較しました
- https://qiita.com/h13/items/a75fba76f435212a2eb3
- PHP: for - Manual
- PHP: do-while - Manual
- PHP: while - Manual
- PHP: foreach - Manual
▼ セキュリティ
-
PHPの脆弱性への攻撃名称と対策メモ
- https://qiita.com/addictionwhite/items/4e9c9cc4570c0bcaa656
-
スクリプトインジェクション入門
- https://qiita.com/tomochan154/items/a93c56536c78d1faff0f
-
ファイルアップロードの例外処理はこれぐらいしないと気が済まない
- https://qiita.com/mpyw/items/939964377766a54d4682
-
とっても簡単なCSRF対策
- https://qiita.com/mpyw/items/8f8989f8575159ce95fc
- PHP: filter_var- Manual
▼ 定数 - define()とconst
-
PHPで定数定義するときはdefine()よりもconstを使うべき
- https://qiita.com/Hiraku/items/bb0cb665d830f7cd37ff
-
PHPの定数について
- https://qiita.com/hugo-sb/items/544b7420a1f8338a23bb
- PHP: define - Manual
- PHP: オブジェクト定数- Manual
▼ 緩やかな比較(==)と厳格な比較(===)
- [PHP: PHP 型の比較表 - Manual] (http://php.net/manual/ja/types.comparisons.php)
- 緩やかな比較を用いる必要はないと思う
▼ in_array, array_searchは引数を省略すると緩やかな比較がなされる
-
PHPのin_arrayは罠が多いので注意喚起が必要
- https://qiita.com/tadsan/items/2a4c3e6b0b74a408c038
- PHP: in_array - Manual
-
PHP: array_search - Manual
- 第三引数を省略すると緩やかな比較になるため、かならずtrueを指定する
▼ switch文は緩やかな比較がなされる
-
switch文の使いどころの悩み
- https://qiita.com/Hiraku/items/af2b304650272410ec29
- PHP: switch - Manual
▼ null, isset, empty の挙動
-
isset, empty, is_null の動作まとめ
- https://qiita.com/mpyw/items/51bf42fe1ad8a7e535aa
- PHP: empty - Manual
- PHP: isset - Manual
▼ array_key_exist(), isset() の挙動
-
isset, in_array, array_key_exsistsの使い分け
- https://qiita.com/is0me/items/e0154b4c2bc6195607f5
-
PHP 配列の要素の存在チェックにおける array_key_exist() と isset() の違い
- https://qiita.com/hugo-sb/items/6c10810684d4c9b91fc0
- PHP: array_key_exists - Manual
▼ 三項演算子の取り扱いについて(エルビス演算子、NULL合体演算子)
-
三項演算子は可読性を落とすか
- https://qiita.com/tanakahisateru/items/4fd82e03c90dc130329a
-
PHP7調査(11)??演算子の新設
- https://qiita.com/hnw/items/dff62cd02c780b613d03
- PHP: 比較演算子 - Manual
▼ 配列の追加・結合の挙動
-
配列結合演算子, array_merge, array_replace を徹底比較
- https://qiita.com/mpyw/items/578e1a14879e679d2141
-
[PHP] 配列・連想配列の初期化、結合、追加
- https://qiita.com/shuntaro_tamura/items/784cfd61f355516dfff0
-
【PHP】連想配列、配列への追加
- https://qiita.com/kazu56/items/6947a0e4830eb556d575
- PHP: array_merge - Manual
- PHP: array_merge_recursive - Manual
- PHP: array_replace - Manual
- PHP: array_replace_recursive - Manual
- PHP: array_unshift - Manual
- PHP: array_push - Manual
▼ array_map, array_walk の挙動
- Difference between array_map, array_walk and array_filter
- PHP: array_map - Manual
-
PHP: array_walk - Manual
- array_mapは戻り値arrayの破壊的メソッド、array_walkは戻り値boolの非破壊メソッド
▼ 例外とエラーの取り扱いについて
-
お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか?
- https://qiita.com/mpyw/items/c69da9589e72ceac470c
-
PHP 7.0.0α2 の例外の例外の継承関係を可視化してみた
- https://qiita.com/ngyuki/items/8b78e6b19ab8778a1af6
-
PHP でどのように Exception/RuntimeException/LogicException を使い分けるか
- https://qiita.com/tanakahisateru/items/e3e24f3825c4ba0c60e6
-
SPLの例外の意味をphp-srcから探る
- https://qiita.com/Hiraku/items/fbb31c2e9f6b9f868d13
- PHP: 例外(exceptions) - Manual
- PHP: PHP 7 でのエラー - Manual
▼ データベース(PDO)
-
PHPでデータベースに接続するときのまとめ
- https://qiita.com/mpyw/items/b00b72c5c95aac573b71
-
【PHP超入門】クラス~例外処理~PDOの基礎
- https://qiita.com/7968/items/6f089fec8dde676abb5b
-
プレースホルダで「= ?」と「IS NULL」に同時に対応する方法
- https://qiita.com/mpyw/items/cb7ca19284afc4e2969d
-
bindParam()とbindValue()の違い
- https://qiita.com/_dozen_/items/f6239cf1bdab6f8b0026
- PHP: PDO - Manual
▼ 文字コード
-
マルチバイト文字を扱う際に気をつけること
- https://qiita.com/mpyw/items/a8dba1b80fe68523b8eb
▼ var_dump, またはその代替
-
秘伝の var_dump 関数を公開します。
- https://qiita.com/ymm1x/items/8fb2c412b161f485b61b
-
var_dumpからの卒業、PHP開発を加速するデバッグ手法を考える
- https://qiita.com/zaru/items/84d7ffd264b8093dca20
- PHP: var_dump - Manual
▼ phpにおける列挙型(enum)
-
PHPで列挙型(enum)を作る
- https://qiita.com/Hiraku/items/71e385b56dcaa37629fe
-
「PHPで列挙型(enum)を作る」を参考にValueObjectを作ったので一つ一つのメソッドの役割や意味をまとめてみた
- https://qiita.com/Yorinton/items/f6138f2bca7664162ca3
- PHP: SplEnum - Manual
- https://packagist.org/packages/myclabs/php-enum
▼ phpにおける純粋な配列:SplFixedArray
-
SplFixedArrayで"純粋な配列"を作る
- https://qiita.com/Hiraku/items/471747cacda58070f3a6
- PHP: SplFixedArray - Manual
▼ phpにおける差集合/積集合
-
PHP:ホワイトリストやブラックリストで配列からキーを削除する
- https://qiita.com/suin/items/455f152be85c0704a48c
- PHP: array_intersect_key - Manual
- PHP: array_diff_key - Manual
▼ ファイルの取り扱いについて
-
PHPでファイルを開いて読み込む
- https://qiita.com/tadsan/items/bbc23ee596d55159f044
-
サブフォルダ内のファイルをまとめて取得する
- https://qiita.com/re-24/items/94eeea3e8051e212d9ed
- PHP: SplFileObject - Manual
- PHP: RecursiveDirectoryIterator - Manual
▼ セッション・クッキーまわり
-
【PHP超入門】Cookieとセッションについて
- https://qiita.com/7968/items/ce03feb17c8eaa6e4672
-
Cookieとセッションをちゃんと理解する
- https://qiita.com/hththt/items/07136ad74127999df271
- PHP: Sessions - Manual
- PHP: クッキー(Cookies) - Manual
▼ スーパーグローバルまわり
-
【PHP超入門】HTTP(GET・POST)について
- https://qiita.com/7968/items/4bf4d6f28284146c288f
-
$_GET, $_POSTなどを受け取る際の処理
- https://qiita.com/mpyw/items/2f9955db1c02eeef43ea
- PHP: スーパーグローバル - Manual
▼ WebAPI
-
WebAPIについての説明
- https://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47
▼ メソッドチェーン
-
PHPにおけるメソッドチェーンの構築
- https://qiita.com/morisuke/items/a7064dc5a195e005a1f5
▼(おまけ)SELinux絶対にdisabledにするマンにならないために
-
「SELinuxのせいで動かない」撲滅ガイド
- https://qiita.com/yunano/items/857ab36faa0d695573dd
-
SELinux を使おう.使ってくれ.
- https://qiita.com/chi9rin/items/af532d0dd9237cc65741