ホームページ >バックエンド開発 >PHPチュートリアル >PHP 5.4.x から PHP 5.5.x への移行
php5.4.x を php5.5.x に移行する php5 に移行する
1 は下位互換性のある変更を望まない
(1) Windows XP および 2003 はサポートされなくなりました
(2) Pack と unpack() 関数は "Z" モードを追加します
(3) PHP ログ GUID を削除します
関連関数
php_log_guid(),php_egg_log_guid(),php_real_logo_guid(),zend_log_guid()
関連する簡単なケース
echo php_logo_guid ( );
echo '
echo '
var_dump(php_egg_logo_guid() );
var_dump(php_real_logo_guid() );
(1 ) ジェネレーターの利回りキーワード
http://php .net/manual/zh/ language.generators.overview.php
ジェネレーターは、クラスを定義して Iterator インターフェースを実装する場合と比較して、パフォーマンスのオーバーヘッドと複雑さを大幅に軽減する簡単な方法を提供します。ジェネレーターを使用すると、メモリ内に配列を作成せずに、foreach ブロックにコードを記述してデータ セットを反復処理できます。これにより、メモリ制限に達したり、かなりの処理時間がかかってしまいます。代わりに、通常のカスタム関数と同じようにジェネレーター関数を作成できます。通常の関数が 1 回だけ返すのではなく、ジェネレーターは必要に応じて何度でも生成して、反復する必要がある値を生成できます。簡単な例は、ジェネレーターを使用して range() 関数を再実装することです。 標準の range() 関数は、範囲内のすべての値を含む配列をメモリ内に生成し、その配列を返す必要があるため、複数の大きな配列が生成されます。 たとえば、 range(0, 1000000) を呼び出すと、メモリ使用量が 100 MB を超えます。代わりに、Iterator オブジェクトを作成し、内部でジェネレーターの現在の状態を追跡するのに十分なメモリのみを必要とする xrange() ジェネレーターを実装することもできます。これにより、必要なメモリは 1K バイト未満になります。
function xrange($start, $limit, $step = 1) {
if ($start < $limit) {
if ($step <= 0) {
bogicexceptionをスロー( 'ステップは +ve');*/
echo 'range() からの 1 桁の奇数: ';
foreach (range(1, 9, 2) as $number) {
echo "$number ";
}
echo "n";
echo 'xrange() からの 1 桁の奇数: ';
foreach (xrange(1, 9, 2) as $number) {
echo "$number ";
}
Word最後にエラー処理ステートメント try...catch を追加します。これは Java の C# に似ています
(3) foreach が list() をサポートするようになりました
foreach 制御構造が追加されましたlist() Construct は、ネストされた配列を個別の変数に分割します。例:
$array = [
[ 1 , 2 ],
[ 3 , 4 ],
foreach ( $array as list $a( , $ b )) {
echo "A: $a ; B: $b n" ;
}
?>
(4) empty() は任意の式をサポートします
empty() は受信 An をサポートするようになりました単なる変数ではなく、任意の式。例:
php5.5.x の前のバージョン
>=php5.5.x
(5) 非変数配列と文字列も添え字の取得をサポートできます
echo '配列の参照解除: ' ;
echo [ 1 , 2 , 3 ][ 0 ];
echo "n" ;
echo '文字列の参照解除: ' ;
echo 'PHP' [ 0 ];
echo "n" ;
?>
配列の逆参照: 1
文字列の逆参照: P