$arr[] = value
この記述方法は推奨されていません。なぜなら、$arr にすでに何らかの値 (リクエスト変数からの文字列など) が入っている場合にはその値がそのまま残り、[] が実際には文字列アクセス演算子を表してしまうためです。 変数を初期化する際は、常に直接代入することをお勧めします。
$arr
[]
詳しくは、Creating/modifying with square bracket syntax (php.net) を参照してください。