Quantcast
Channel: PHP8タグが付けられた新着記事 - Qiita
Browsing all 521 articles
Browse latest View live

PHP8で削除される機能

2017/06/22にPHP7.2.0 α2が出ました。 アップグレードガイドにDeprecated Functionalityという項目がありました。 All the deprecated functionality listed in the following will be removed in PHP 8.0....

View Article


【PHP8】PHPでJITが使えるようになる

JITのRFCが2019/03/21に投票開始されました。 締切は2019/03/28ですが、2019/03/27時点で賛成48反対2でほぼ導入確定です。 JITとは JIT is 何? PHPは現在は、アクセスが来るたびにソースコードを全部読み取って、opcodeに変換して、順番に逐次実行して、実行が終了したら全てのコードを破棄するというインタプリタ型のプログラミング言語で、処理速度は遅いです。...

View Article


【PHP8】short_open_tagにさよなら、しないかも?

Deprecate PHP Short open tagsというRFCが投票フェーズに入りました。 投票期間は2019/04/10から2019/04/24、採択には投票数の2/3+1の賛成が必要です。 Deprecate PHP Short open tags Short open tagsとは PHPの開始を示すタグは<?php、もしくは<?=です。 後者は<?php...

View Article

【PHP8】PHPの三項演算子が他言語の実装に一歩近付く

Deprecate left-associative ternary operatorというRFCが投票に入っています。 提案者のNikitaは、最近アロー関数やらAlways generate fatal error for incompatible method signaturesやらConsistent type errors for internal...

View Article

Image may be NSFW.
Clik here to view.

【PHP8】演算子.と+の優先順位が変わる

PHP7.3現在、演算子+、-と.の優先順位は同じです。 すなわち左から右に評価されます。 echo 1 . 2 + 3 . 4; echo ((( 1 . 2 ) + 3 ) . 4 ) ; // これと同じ マニュアルでもわざわざ例を挙げて解説しています。 さて2019年3月にChange the precedence of the concatenation...

View Article


Image may be NSFW.
Clik here to view.

【PHP8】JIT=on の Docker を触ってみたい人。爆速だったよ。

PHP8 で JIT が使えるようになるそうなので、ワクワクが止まりません。手軽に触れるイメージが Docker ないものか。 TL;DR PHP8-ish(master = 一番 PHP8 に近い状態)の PHP をソースからコンパイルして JIT を有効にした Docker イメージを作ってみました。Mac 以外にもラズパイ3、ラズパイZero の Docker で動くようにしています。...

View Article

【PHP8.0】未定義変数へのアクセスが例外にな・・・らない

ついにこの日が来てしまったようです。 PHPのユルさの象徴のひとつとして『未定義変数に普通にアクセスできる』というものがあります。 echo $a; // Notice: Undefined variable: a 大抵の言語ではエラーや例外で落ちますが、PHPでは処理が中断することはありません。 警告は出ますが、最もエラーレベルの低いE_NOTICEです。...

View Article

【PHP8.0】オブジェクト初期化子のRFCが却下されそう

いつのまにやらObject InitializerというRFCが投票に入っていました。 ちょっとだけ面白そうと思ったのですが、ただ、ほぼ確実に却下されるので詳しく見てもしょうがないのでざっくり紹介してみます。 Object Initializer 文法 class Customer{ public $id; public $name; private DateTimeImmutable...

View Article


【PHP8.0】PHP8で警告のエラーレベルが軒並み厳しくなる

多くの警告について、PHP8.0でエラーレベルが変更されます。 これはReclassifying engine warningsというRFCで受理されたものです。 提案者はいつものNikita。 影響の大きい未定義変数アクセスについては個別に紹介しましたが、ここではそこで紹介しなかった細かい警告について見ていきます。...

View Article


【PHP8.0】PHPでunion型が使えるようになる

Union Types 2.0というRFCが投票中です。提案者はまたまたのNikita。 2019/10/25開始、2019/11/08終了で、受理には2/3+1の賛成が必要です。 2019/11/04時点で賛成55反対5であり、ほぼ導入確定です。PHPのunion型って何かというと、TypeScriptのunion型とだいたい同じです。int|string...

View Article

CentOS8で、PHP8のインストール。

こんにちは。 BitByteの伊井です。今日は、CentOS8上で、PHP8をソースからビルドしてインストールする方法をご紹介します。まず、CentOS8環境を、Vagrantでも、普通にクラウドでも良いので、用意します。そして、おもむろに以下のコマンドを実行していきます。dnf install update dnf install git sqlite dnf groupinstall...

View Article

Image may be NSFW.
Clik here to view.

【PHP8.0】マイナススタートの配列インデックスが使えるようになる

PHP7.4$arr=[];$arr[-10]=1;$arr[]=1;どうなるかというと[-10=>1, 0=>1]です。これはマニュアルにも明記されています。しかしこの動作はPHP8.0で変更になります。Arrays starting with a negative indexというRFCにおいて変更が決定しました。Arrays starting with a negative...

View Article

php8 JIT vs いろんな言語

php8 JITと他のサーバーサイド言語を使ってパフォーマンステストをしました。php8 JITが早くなったということで、他の主要なサーバーサイドの言語とパフォーマンステストして比較する。どの言語が一番速いかどうかの検証パフォーマンステスト用メソッド...

View Article


PHP8にstr_contains関数が追加されることになったというお話

strposや strstrを使わずに済むようになる・・・かもしれません( 日本語対応にやや懸念あり)。以下、 RFCをもとに紹介します。まだ投票中ですが、3月8日現在、賛成42/反対5という圧倒的多数の支持を得ているため、追加される公算が高いです。既存関数の問題点ある文字列が別の文字列に含まれているかをチェックする際、これまで strposや...

View Article

Image may be NSFW.
Clik here to view.

【PHP8】もう`strpos($haystack, $needle)!==false`って書かなくていいんだ

ある文字列中に特定の文字列が存在するかを調べる方法としてstrposが存在します。しかし、そもそもstrposは『ある文字列中で特定の文字列が何文字目に出てくるか』を調べる関数であり、第一に使用目的が異なる関数です。そしてこちらも有名な話ですが、先頭が一致すると0が返ってくるので、緩やかな比較ではfalseと区別されません。...

View Article


【PHP8.0】gettypeとget_classの悪魔合体

ワレハget_debug_type、コンゴトモヨロシク…PHPにはプリミティブ型名を取得するgettypeと、オブジェクトのクラス名を返すget_classという関数が存在します。_があったりなかったりと命名の不統一も気になりますが、それよりgettypeはオブジェクトに使うとobjectしか返さず、get_classをプリミティブ型に使うとE_WARNINGが発生します。いや、プリミティブ型であれ...

View Article

【PHP8.0】throw文がthrow式になる

throw expressionというRFCが投票中です。最初のアイデアは2019/12/06のSebastiaan Andewegによるツイート。Really liking the arrow functions in PHP 7.4 so far! Unfortunately already found one missing feature: you can't throw...

View Article


【PHP8.0?】PHPに名前付き引数が実装されるかもしれない

PHPのソースを眺めていたら、先日2020/04/07にNikitaがなんか面白そうなプルリクを出していました。Named Parametersという2013年に提出されたまま忘れ去られたRFCがあるのですが、その機能を実装したものです。どういう機能ってこういうのです。functionhoge($foo,$bar){echo"foo=$foo,...

View Article

【PHP8.0】PHPでアトリビュート/アノテーション/デコレータが書けるようになる

Attributes v2というRFCが投票中です。投票期間は2020/05/04まで、投票者の2/3の賛成で受理されます。 2020/04/27時点では賛成48反対1で、ほぼ間違いなく可決されます。Attributes...

View Article

【PHP8.0】StartsWith/EndsWithがPHP本体に実装される

先日PHP8でstr_containsが導入されることが決まったばかりですが、さらにもっと直接的な『〇〇で始まる』『〇〇で終わる』関数までも導入されることになりました。Add str_starts_with() and str_ends_with() functionsというRFCが投票中です。 2020/05/04時点では賛成50反対4で、ほぼ導入確定です。PHP RFC: Add...

View Article
Browsing all 521 articles
Browse latest View live