PHP5.6 PHP 7.0との違いについて
14582 ワード
両者の区別 PHP7.0比PHP 5.6パフォーマンスが2倍に向上しました. PHP7.0は64ビットを完全にサポートします. PHP7.0以前に発生した致命的なエラーは、すべて異常を投げ出すように変更されました. 空結合オペレータ(?)が追加されました.効果は三元演算子に相当します. PHP7.0関数の戻りタイプ宣言が追加されました. PHP7.0スカラータイプ宣言が追加されました.PHP 7の関数のパラメータタイプ宣言は、スカラーであってもよい.PHP 5ではクラス名、インタフェース、arrayまたはcallable(PHP 5.4、すなわち匿名関数を含む関数)のみが使用でき、string、int、float、boolも使用できるようになった. に匿名クラスが追加されました.
PHP 5.3から匿名関数があり、現在また匿名クラスが追加された. PHP7.0以降のオーバーフローは、サポートされていない古いSAPI(サーバ側アプリケーションプログラミングポート)と拡張を除きます. defineは定数配列を定義することができる.
PHPスカラータイプ
タイプ宣言を返す
PHP 7は、返却タイプ宣言のサポートを追加しました.パラメータタイプ宣言と同様に、戻りタイプ宣言は関数の戻り値のタイプを示します.
NULL連結演算子
変数が存在し、値がNULLでない場合は、自身の値が返されます.そうでない場合は、2番目のオペランドが返されます.
スペースボートオペレータ
スペースボートオペレータは、2つの式を比較するために使用されます.aがaより小さい、等しい、またはそれより大きい、aより小さい、等しい、またはbより大きい場合、それはそれぞれ−1、0または1を返す.
定数配列をdefine()で定義する
*define()を使用して定数配列を定義する
define()を使用して定数を定義するには
キーワードconstを使用して定数を定義する
匿名クラス
PHP 7は、new classを介して匿名クラスをインスタンス化することをサポートし、これは、いくつかの「使用後焼却」の完全なクラス定義に代わることができる.
出力:
リファレンス新特性
PHP 5.3から匿名関数があり、現在また匿名クラスが追加された.
PHPスカラータイプ
# ,
declare(strict_types=1)
#1 , ;0 。
タイプ宣言を返す
PHP 7は、返却タイプ宣言のサポートを追加しました.パラメータタイプ宣言と同様に、戻りタイプ宣言は関数の戻り値のタイプを示します.
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
NULL連結演算子
変数が存在し、値がNULLでない場合は、自身の値が返されます.そうでない場合は、2番目のオペランドが返されます.
$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#
$site = $_GET['site'] ??'wo';
スペースボートオペレータ
スペースボートオペレータは、2つの式を比較するために使用されます.aがaより小さい、等しい、またはそれより大きい、aより小さい、等しい、またはbより大きい場合、それはそれぞれ−1、0または1を返す.
//
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
//
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
//
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
定数配列をdefine()で定義する
*define()を使用して定数配列を定義する
define('ANIMALS', [
'dog',
'cat',
'bird'
]);
echo ANIMALS[1]; // "cat"
?>
define()を使用して定数を定義するには
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>
キーワードconstを使用して定数を定義する
const CONSTANT = 'Hello World';
echo CONSTANT;
?>
匿名クラス
PHP 7は、new classを介して匿名クラスをインスタンス化することをサポートし、これは、いくつかの「使用後焼却」の完全なクラス定義に代わることができる.
interface Logger {
public function log(string $msg);
}
class Application {
private $logger;
public function getLogger(): Logger {
return $this->logger;
}
public function setLogger(Logger $logger) {
$this->logger = $logger;
}
}
$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});
var_dump($app->getLogger());
?>
出力:
object(class@anonymous)#2 (0) {
}
リファレンス