25264


「数件のstrict standards/noticeでのアップデートリリースはしない」方針のようで、代わりに（有志による？）修正バージョンを見つけました。  
変更点についてわからない部分があり、質問させていただきます。

（参考URL）  
修正版のコード→<http://pastebin.com/14xJER5S>  
フォーラムトピック→<https://wordpress.org/support/topic/php-deprecated-class-
constructor-name-with-php7>

＜変更点＞  
・66行目…（1）  
function WP_Import() { /* nothing _/ }  
↓  
public function __construct(){ /_ nothing */ }

・798行目…（2）  
$$meta['key'] = $meta['value']  
↓  
${$meta['key']} = $meta['value']

・1032行目…（3）  
screen_icon(); // 削除

・1110行目…（4）  
function bump_request_timeout(){  
↓  
function bump_request_timeout($val){

●変更点についての、自分なりの解釈  
(1).class同名のfunctionでのコンストラクタが非推奨になったことへの対応  
(2).可変変数名の書き方を、より明示的な書き方に修正  
(3).WP3.8～非推奨になったコマンド「screen_icon(get_screen_icon)」を削除  
(4).「http_request_timeout」の形式が値設定ありなので、互換性のある書き方に修正

●疑問点  
(A).この解釈で合っている？  
(B).上記(1)のfunctionは、なぜ「public」なのか？

解釈の間違いや、追加情報、補足情報など。  
なにかありましたら、コメントをいただけると嬉しいです。  
よろしくお願いします。

＜開発環境＞  
XAMPP：7.0.4（PHP7+MariaDB）  
WordPress：4.5.2  
WordPress Importer：0.6.1  
OS：Windows Vista SP2

※Word Pressは5/8現時点での最新版。XAMPPは1つ前のバージョンです。  
※WordPressのDEBUG_MODE=ONでテストしています。


CC BY-SA 3.0
2016-05-12T09:00:54.100
24790
2016-05-29T07:25:03.480
2016-05-29T06:58:19.333
15471
15471
question
php wordpress
PHP7環境で「WordPress Importer」を使うとエラーになる件について


他サイトで教えてもらったので、回答をかいつまんでメモしておきます。

> (A).この解釈で合っている？

概ねOK。  
（2）については、PHP5とPHP7で挙動が違うため、双方で同じ解釈になるように{}を使って表記している。  
（→[PHP: 下位互換性のない変更点 -
Manual](http://php.net/manual/ja/migration70.incompatible.php)）

> (B).上記(1)のfunctionは、なぜ「public」なのか？

コンストラクタはpublicでないと外部から呼べない（＝このクラスを外部からインスタンス化できない）ため。

※コンストラクタはpublicにするのが基本。  
（例外的なケースとして、特殊な用途で、わざとprivateにする使い方もないことはない）

補足  
・メソッドで（スコープを）何も書かない場合、public扱いになる（php7の場合）。


CC BY-SA 3.0
2016-05-29T07:25:03.480
25264
2016-05-29T07:25:03.480
15471
24790
answer