タグ

php7に関するakira1908jpのブックマーク (19)

  • PHP の関数実行とその計測(記事版) - Qiita

    今回話す内容は以下です。 1 つは PHP の関数実行の仕組みについて もう1つはその性能計測について PHP で関数というのは、プログラムに行わせる一連の処理のまとまりです。 こんなコードのものですね。 まずはこのコードが処理系によってどう実行されているかの話からです。 Zend Engine の概要 この中に Zend Engine というのを聞いたことがある方はどのくらいいらっしゃいますでしょうか。 (けっこう手が上がる筈) ありがとうございます、では Zend Engine が何のことか、雑になんとなく分かる、という方はどのくらいいらっしゃいますでしょうか。 (けっこう減る筈) ありがとうございます。 Zend Engine は PHP の公式処理系のコア部分です。php.net で配布されている、いわゆる公式処理系です。かつて PHP 4 の頃に、 Zeev さんという人と An

    PHP の関数実行とその計測(記事版) - Qiita
  • お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか? - Qiita

    お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか?PHPポエム例外例外処理 導入 煽りタイトルすいません.PHP 7 のエラーや標準例外について,違いを整理し,使い分けを考察する記事です. 【引用】 PHP 7.0.0α2 の例外の例外の継承関係を可視化してみた by @ngyuki すべてを捕捉対象にする [Throwable] [Throwable] は, PHP 7 の throw 文でスロー可能なあらゆるオブジェクトが実装する基底インターフェイスです. [Error] および [Exception] はこれを実装しています.但し,PHPコードとして書かれるクラスが [Throwable] インターフェイスを直接実装することはできません. と

    お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか? - Qiita
  • PHP7.1以降なおったバグたち - Qiita

    2016/12/01に出たPHP7.1.0以降、2017/04/13に出た7.1.4までに修正されたバグのうち、目立ったものを取り出してみた。 メモリリークとかSegfaultとか長すぎるやつとかは確かめるのが面倒なのでスルー。 array_key_exists fails on arrays created by get_object_vars オブジェクトから配列にしたらarray_key_existsでキーが見つからないという問題。 $json = '{"2":1}'; $obj = json_decode($json); $arr = get_object_vars($obj); $key = array_key_exists('2', $arr); // falseになる これは$arrが[2=>1]ではなく["2"=>1]になっているせいで発生する問題です。 元々7.2でなおす

    PHP7.1以降なおったバグたち - Qiita
  • PHP7.2の新機能 - Qiita

    PHP7.3.0 / PHP7.3.0α1 / PHP7.2 / PHP7.1 つい先日PHP7.1.0が出たばっかりですが、早くもPHP7.2に取り込まれる機能が幾つか決まってるみたいなので見てみます。 Convert numeric keys in object/array casts 賛成21/反対1で受理。 配列のキーに数値型文字列を入れた場合、自動的に数値になります。

    PHP7.2の新機能 - Qiita
  • 制約でコードに秩序を

    2016/05/21 PHP カンファレンス福岡 2016

    制約でコードに秩序を
  • PHP7.1α1の新機能 - Qiita

    PHP7.1.0の新機能 / PHP7.1β1の新機能 / PHP7.1α1の新機能 / PHP7.1.0α1インストール / PHP7.0.0α1 / PHP5.6 PHP7.1に導入決定・実装完了したRFCを見てみます。 Warn about invalid strings in arithmetic 非数値文字列の数値演算でエラーが発生する。 $x = 1 + 'a'; // Warning: A non-numeric string encountered $y = 1 + '1a'; // Notice: A non well formed numeric string encountered $z = 1 + '1'; // 大丈夫っぽい $x = (1 + (int)'a'); // 回避手段1 $x = @(1 + 'a'); // 回避手段2 数値として解釈可能であればE

    PHP7.1α1の新機能 - Qiita
  • PHP 5.4.43 Released - PHP: News Archive - 2015

    The PHP development team announces the immediate availability of PHP 7.0.1. Several bugs have been fixed. All PHP 7.0 users are encouraged to upgrade to this version. For source downloads of PHP 7.0.1 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. The team at php[architect] is excited to anno

  • 「PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編)

    PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編) WordpressやFacebookなど、Webのさまざまなサービスで使われているPHP言語。約10年ぶりのメジャーバージョンアップとなる「PHP 7」がもうすぐ登場予定です。 PHP 7では互換性を維持しつつ、従来のPHP 5と比べて2倍以上の性能向上やメモリ使用量を低減するなど、大きな改善が実現されます。 そのPHPの生みの親であるRasmus Lerdorf氏が来日し、10月3日に都内で行われた「PHPカンファレンス2015」の基調講演「SPEEDING UP THE WEB WITH PHP 7」においてPHP7の新機能や性能について詳しく解説しました。 その内容をダイジェストで紹介しましょう。 SPEEDING UP THE W

    「PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編)
  • PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記

    仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。 PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModule php5_module modules/libphp5.so ↓ LoadModule php7_module modules/libphp7.so memcache extensionがインストールできない PHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca

    PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記
  • PHP7.0.0α2で例外の扱いが変わった - Qiita

    PHP7.0.0α1ではパースエラーをParseExceptionで受け取れます。 http://qiita.com/hnw/items/4e2d47d269a26025a726 http://qiita.com/rana_kualu/items/447995347acb2f8997a3 が、PHP7.0.0α2に上げたら何故かできなくなってしまいました。 調べてみたら構造が変わってました。 Throwable ( interface ) Exception LogicException InvalidArgumentExceptionとか RuntimeException OutOfBoundsExceptionとか ErrorException ReflectionExceptionとか Error ParseError TypeError AssertionError 各Except

    PHP7.0.0α2で例外の扱いが変わった - Qiita
  • PHP帝国の逆襲!(を願うPHPerが話す最近のPHPについてのクイックツアー PHP7対応版) - YAPC::Asia Tokyo 2015

    PHP帝国は滅んでいない。新たなる希望を待ち、逆襲の機会を虎視眈々とねらっている」 遠い昔、はるか彼方の銀河系で…はなくて、去年、私は 私が愛するPHPはまだまだイケてる! とホールで叫び、なんと皆様からベストトーク賞をいただけたYAPC::Asia Tokyo 2014から1年が経ちました。 あれからPHPに新しい事は起こったか?勿論起こりましたし、さらに 起こりつつあります! 皆さんに是非お届けしなければ!ということで、今年もPHPの話をさせてください! 次のPHPは5.6から一気に7にバージョンアップされます 。「5.6の次が7って、おくればせながら流行にのってメジャーバージョンを切り捨てて5.7を7にしただけじゃないか?」なんてことはなく、メジャーバージョンアップにふさわしく変わります。 PHPなりに 高速に、安全に、パワフルに 生まれ変わりを果たそうとしています。その 来たるべ

    akira1908jp
    akira1908jp 2015/06/08
    “PHPerの未来は明るい!”
  • PHP7でクラスはバラバラになった

    PHP7では無名クラスが導入されます。 PHP7調査(26)無名クラスの導入 - Qiita これ、単に構文だけの話にせず、「クラスの第3の能力が単独で切り出された」と捉えると面白いのかなと思いました。 クラスが持つ3つの役割 クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー 「コーディングを支える技術」の西尾泰和氏によると、クラスには ユーザー定義型 実装の再利用の単位 インスタンス生成器 の3つの役割があるといいます。 クラスが扱いづらい概念だとすれば、それはこの3つの能力をまとめて持っているからです。 PHPのユーザー定義型、インターフェース PHPの場合、タイプヒントがありますし、定義したクラスは後から拡張することができません(オープンクラスではない)。 if ($obj instanceof FooClass) { //... } この「$objがFooClassのインスタ

    PHP7でクラスはバラバラになった
  • PHPカンファレンス関西2015でPHP7について発表してきました - hnwの日記

    去る5/30にPHPカンファレンス関西2015で基調講演をさせていただきました。今回は長い枠だったのもあって資料準備にかなりの時間をかけました。その甲斐あってか、好評だったようで何よりです。発表資料は以下になります。 質疑応答やその他の反応について補足 お伝えし忘れたことや誤解を招いた点があったかもしれませんので、4点ほど補足します。 「内部構造を変更したのだから、エクステンションごとにPHP7対応が必要なのではないか?」 その通りです。プレゼンでも紹介したzvalのポインタ参照が一段浅くなっていることや、内部APIが変更された影響があるため、PHP5用のエクステンションをPHP7でビルドしようとしても、そもそもコンパイルすら通らない可能性が高いです。xdebugなど内部構造と密接に関わるエクステンションほど対応に時間がかかるでしょう。 一方で、PHP体に同梱のエクステンションは既にほぼ

    PHPカンファレンス関西2015でPHP7について発表してきました - hnwの日記
  • PHP7で変わること ——言語仕様とエンジンの改善ポイント

    PHP Conference 2017 での発表資料です。 PHP 7.1 から OPcache 内部の最適化器にデータフロー解析が実装され、より効率的なバイトコードが生成されるようになりました。過去と現在の OPcache の最適化器の処理について簡単に紹介したものです。

    PHP7で変わること ——言語仕様とエンジンの改善ポイント
  • PHP7で変わること - hnwの日記

    次の土曜日5/30のPHPカンファレンス関西2015で基調講演(10:30-11:15)をさせて頂くことになりました。タイトルは「PHP7で変わること——言語仕様とエンジンの改善ポイント」です。チケットは既に売り切れているそうですが、参加者の方は早起きして来て頂けると幸いです。 このところQiitaに「PHP7調査」というシリーズを連投していたのも発表を意識してのことです。PHP7の新機能を一つずつ実際に試してみて、その結果を簡単にまとめていました。 今回は発表前の区切りとして、私の書いたPHP7関連の記事・プレゼン資料を一覧形式でまとめなおしてみます。PHPカンファレンス関西2015ではこれらの内容を踏まえつつ、気になる点を重点的にお伝えしたいと考えています。 内部実装のリファクタリング PHP7の目玉と言える、速度改善に関わる内容がほとんどです。 PHP7はなぜ速いのか - Slide

    PHP7で変わること - hnwの日記
  • PHP7調査(23)致命的エラーが例外としてキャッチできるようになった - Qiita

    (2015/07/02追記:PHP 7.0.0alpha2に合わせて修正しました) PHPのエラーは、エラー文言を表示するだけの警告・注意と、その場で処理を終了してしまう致命的エラー(fatal error)の2種類に大別できます。 ところで、PHP5の致命的エラーには不便な点があります。それは、set_error_handler()やその他の方法でエラーハンドリングできず、必ず終了してしまう点です。これでは致命的エラーをユニットテストするのも不便ですし、ReactPHPのようにサーバ動作させるようなプログラムも安心して使えません。 PHP7では致命的エラーが例外として実現されるようになり、エラーハンドリングの自由度が格段に上がりました。この変更の概要を紹介します。 例外のクラス階層の変更 まず、PHP7で例外クラスの階層がどう変わるかを説明します。PHP5までの例外のクラス階層は次のよう

    PHP7調査(23)致命的エラーが例外としてキャッチできるようになった - Qiita
  • PHP7調査(11)??演算子の新設 - Qiita

    PHP7で2項演算子「??」が新設されます。左オペランドがnull以外の値であればその値を、そうでなければ右オペランドを返すようなものです。

    PHP7調査(11)??演算子の新設 - Qiita
  • PHP7とjson_decodeとjson_encodeの困った仕様 – 数値型データの問題

    (Last Updated On: 2018年8月13日)PHP7からint/float/arrayの基的データ型のタイプヒントが導入されます。タイプヒントには困った問題があります。その問題を更に複雑にするjson_decode関数のデータ型変換問題があります。 JSONデータの数値型データ※が特定の型に変換される問題はPHPのjson_decode関数に限った問題ではなく、JSONを利用する処理系を作る全ての開発者が注意すべき問題です。 ※正確には数値型データと書くより「数値型リテラル」と記述するべきですが、「数値型データ」とします。 大きな数値さえ使わなければ気にしなくても問題にならないですが、json_decodeはJSONの整数/浮動小数点形式データをPHPのint型、float型に自動変換します。 JSON RFCの内容 JSONを定義するRFC 7195によると This s

    PHP7とjson_decodeとjson_encodeの困った仕様 – 数値型データの問題
  • PHP7の現状

    (Last Updated On: 2018年8月13日)PHP7が今年の秋リリースされる予定です。まだまだ多くの変更が行われる予定ですが、現状を簡単にまとめてみたいと思います。代表的な物のみ取り上げています。 ご存知ない方の為に書いておきます。現在リリースされているPHPPHP5です。次のPHPPHP7になり、PHP6はリリースされません。PHP6をUnicodeをネイティブ文字列としてサポートするバージョンとして開発されましたが、文字エンコーディングチェックを内部で自動的に行おうとするなど、無駄が多く遅いため破棄されました。(文字エンコーディングのバリデーションは来アプリでするものです)このため、PHP6はスキップされ次のPHPPHP7になります。 追記:PHP7.0は既にリリースされています。概要はPHP 7.0の概要・新機能・互換性、詳しくはマイグレーションドキュメントをご

    PHP7の現状
  • 1