php-master-changes 2018-10-11

# 2018-10-11
今日は shadowed properties のプロパティ列挙での扱い修正、不要な分岐/コードの除去、ArrayObject 周りの修正、ドキュメントの更新があった！ master だけが動いた日だった！

## nikic: Fix foreach/get_object_vars for shadowed properties
- https://github.com/php/php-src/commit/4d5d77904e9e4dc52236ec5416d1ddfef9b3911c
- 親クラスのスコープからオブジェクトへの [get_object_vars()](http://php.net/manual/ja/function.get-object-vars.php) や foreach で自身のプロパティを列挙する際、private なプロパティについて子クラスで同名の public プロパティが定義されている場合、その子クラスの public プロパティも見えてしまっていた問題の修正
- [実際見るとわかりやすい](https://3v4l.org/BdLXQ)
- このケースは get_object_vars() / foreach どちらも親クラスの private プロパティしか見なくなる
- shadowed properties ってよく見るので、適切な訳語が欲しい……

## nikic: Remember redundant check in filter.c
- https://github.com/php/php-src/commit/a8bc3889fd07fb4897d1e2b7f2d2b15388d76e39
- ext/filter でハッシュの不要なチェックを除去

## nikic: Remove some redundant uses of HASH_OF
- https://github.com/php/php-src/commit/32d7e08286be3f7a1d8529d306a8cecebde8555c
- ext/filter で不要な [HASH_OF()](https://phpinternals.net/docs/hash_of) を除去
- HASH_OF() は zval がオブジェクトか配列かに応じて分岐しつつハッシュテーブルを取り出す処理、GET の内容とか常に配列で来るので無駄、というやつ

## nikic: Remove leftover code dealing with curl wrappers
- https://github.com/php/php-src/commit/a710ceee62680e88e8fe90490c3a91321810fa62
- [削除](https://wiki.php.net/rfc/curl-wrappers-removal-rfc)[された](https://github.com/php/php-src/commit/b79e65f268d8f368a1088313735eda3ca485fa53) curl のストリームラッパー対応コードで、[get_headers()](http://php.net/manual/ja/function.get-headers.php) の実装内に残ってた部分を除去

## petk: Modernize the AC_PRESERVE_HELP_ORDER macro call
- https://github.com/php/php-src/commit/9bbf9967bd2ae5094e00fc6649d46f6082b44097
- autoconf のマクロ AC_PRESERVE_HELP_ORDER を無条件で呼ぶよう修正
- 現在の autoconf の最低要求バージョンは [2.68](https://qiita.com/sj-i/items/e62a795a61ed779da078#petk-bump-minimum-autoconf-requirement-to-268)

## nikic: Remove HASH_OF uses in ext/filter
- https://github.com/php/php-src/commit/bfaba83102e886de93aaec7d773ec3adfb2c943f
- ext/filter 内で HASH_OF() 使ってる箇所、あらためて見ると全部配列前提でよかったので、全部 [Z_ARRVAL_P()](https://phpinternals.net/docs/z_arrval) へ置き換え

## nikic: Drop unnecessary HASH_OF uses in ext/oci8
- https://github.com/php/php-src/commit/2c7be428530df41bb5de23e7788677930b618903
- ext/oci8 でも HASH_OF() が要らない箇所を修正

## nikic: Remove unnecessary HASH_OF uses in mbstring
- https://github.com/php/php-src/commit/900ee5705fb6bbdabe0cc4681ff5b764e9222af8
- ext/mbstring でも HASH_OF() が要らない箇所を修正

## nikic: Use ARRAY_OR_OBJECT arg in http_build_query
- https://github.com/php/php-src/commit/4ca5b357717ccf79b86966d04fc03287e551acdc
- [http_build_query()](http://php.net/manual/ja/function.http-build-query.php) の実装で、第一引数が配列とオブジェクトのどちらか、の判定をする実装を自前で持っていたのを [Z_PARAM_ARRAY_OR_OBJECT()](https://phpinternals.net/docs/z_param_array_or_object) に置き換え
- エラーメッセージで「Parameter 1 expected to be Array or Object.」とか言っていた部分が「expects parameter 1 to be array, null given」のようにオブジェクトも取れるという情報が出なくなるが、そもそもどっちでも受け付ける、というのを[そのうち消す気](https://github.com/php/php-src/commit/4ca5b357717ccf79b86966d04fc03287e551acdc#r30862462)でいるので、強調したくないらしい

## nikic: Remove redundant HASH_OF in mail.c
- https://github.com/php/php-src/commit/a27f772a460fff294374ae4b7a5158a52dae4c6a
- mail.c でも HASH_OF() の要らない箇所を修正

## nikic: Remove unnecessary get_hash_table return value checks
- https://github.com/php/php-src/commit/5659035ab69b4c52866a1554d602d551737f7a1e
- ext/spl で ArrayObject の不要なチェック処理を除去

## nikic: More straightforward count() on ArrayObject with object
- https://github.com/php/php-src/commit/0697d833837a0361d9344dddcf2be41806b86408
- ext/spl で ArrayObject の中身がオブジェクトである際の count() の実装を単純化/高速化

## sgolemon: Update release process information to include the improved bumpRelease script
- https://github.com/php/php-src/commit/da4867195965c2b6e9a04037e1edd40967463db2
- README.RELEASE_PROCESS の内容へ、リリースアナウンスお助けスクリプトの [bumpRelease がマイナーバージョンを扱えるようになった](https://github.com/salathe/php-web/commit/321007e06ceef2e7b2fa03afa0eedab83a4a3bbf)ことを反映

## nikic: Restore array_key_exists() compatibility for ArrayObject
- https://github.com/php/php-src/commit/0b6063f33112b4685bc3c23ae823556fec8f32f1
- [昨日入った](https://qiita.com/sj-i/items/e62a795a61ed779da078#nikic-introduce-get_properties_for-handler) get_properties_for ハンドラの修正で [ZendFramework が動かなくなっていた](https://github.com/php/php-src/pull/3579#issuecomment-428876735)のを修正
- array_key_exists() を ArrayObject へ使っていたのが問題だったので、特別対応で array_key_exists() のサポートを復活させた