概要
ここに訪れた方がphp7について理解できるまでを目標のため、日々更新予定
新機能
- スカラー型宣言
- 戻り値の型宣言
- Null 合体演算子
- 宇宙船演算子
- define() を用いた配列定数の定義
- 無名クラス
- Unicode コードポイントエスケープ構文
- unserialize() のフィルタリング
- IntlChar
- Expectation
- use 宣言のグループ化
- ジェネレータでの return
- ジェネレータの委譲
- intdiv() による整数の除算
- セッションのオプション
- preg_replace_callback_array()
- CSPRNG 関数
- list() が常に、 ArrayAccess を実装したオブジェクトをアンパックできるように
- 名前空間のグループ指定における最後のカンマの許可
- object 型
- 名前指定による拡張モジュールのロード
- 抽象メソッドのオーバーライド
- Sodium がコアモジュールに
- Argon2 によるパスワードハッシュ
- PDO の拡張文字列型
- PDO のデバッグ情報にプリペアのエミュレートの内容を追加
- LDAP における拡張オペレーションのサポート
- ソケット 拡張モジュールでのアドレス情報の対応
- パラメータの型の拡大変換
- Windows での proc_nice() のサポート
- pack() と unpack() でのエンディアンのサポート
- EXIF 拡張モジュールの機能追加
- PCRE の新機能
- SQLite3 での BLOB の書き込み
- Oracle OCI8 Transparent Application Failover コールバック
- ZIP 拡張モジュールの機能追加
説明などについては以下公式ページへ
https://www.php.net/manual/ja/migration70.new-features.php
https://www.php.net/manual/ja/migration72.new-features.php
PHP 7.0.x で推奨されなくなる機能
PHP 4 形式のコンストラクタ
PHP 4 形式のコンストラクタ (クラス名と同じ名前のメソッドを定義するもの) が非推奨となりました。将来的に削除される見込みです。 PHP 7 では、クラス内でこの形式のコンストラクタしか定義されていない場合に E_DEPRECATED が発生します。 __construct() メソッドを実装していれば、この警告は発生しません。
<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>
上の例の出力は以下となります。
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3
もっと知りたい方↓
https://www.php.net/manual/ja/migration70.deprecated.php
PHP 7.2.x で推奨されなくなる機能
クオートしない文字列
クオートしない文字列は、その名前のグローバル定数が定義されていない場合は単なる文字列という扱いになります。 このとき、いままでは E_NOTICE が発生していました。 PHP 7.2.x 以降は、E_WARNING が発生するようになります。 次のメジャーバージョンアップ後は Error 例外が発生するようになります。
<?php
var_dump(NONEXISTENT);
/* 出力:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version
of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/
もっと知りたい方↓
https://www.php.net/manual/ja/migration72.deprecated.php
php.ini ディレクティブのリスト
https://www.php.net/manual/ja/ini.list.php
PHP のデバッグについて
PHP 5.6 には、phpdbg 対話型デバッガー が同梱されます。 5.6 より前のバージョンには、内部のデバッガ機能はありませんが、 外部のデバッガモジュールを使用することができます。 » Zend IDE にはデバッガが付属していますし、 DBG(» http://www.php-debugger.com/dbg/
Advanced PHP Debugger(APD) および » Xdebug といったフリーの外部デバッガモジュールもあります。
function console_log( $data ){
echo '<script>';
echo 'console.log('. json_encode( $data ) .')';
echo '</script>';
}
Usage:
$myvar = array(1,2,3);
console_log( $myvar ); // [1,2,3]
PHP公式の全関数およびメソッドの一覧
https://www.php.net/manual/ja/indexes.functions.php
PHP公式サンプル集
https://www.php.net/manual/ja/indexes.examples.php
参考
https://www.php.net/manual/ja/migration70.php