タグ

ブックマーク / qiita.com/sj-i (3)

  • PHP で型付のローカル変数を定義するライブラリを作った - Qiita

    概要 PHP で型のあるローカル変数を定義するライブラリを作った。 誤った型の値を代入しようとすると \TypeError を投げる。 型を書ける奴だから TypeWriter か、とも思ったけど、長かったので Typist という名前にした。 PHP 7.4 以降で利用可能。 インストール use function Typist\int; use function Typist\string; // int 型と string 型のローカル変数を定義 $_ = [ int($hoge_id, 1), string($hoge_name, 'name'), ]; // 渡した値で初期化される assert(1 === $hoge_id); assert('name' === $hoge_name); // int 型の変数へ文字列を突っ込もうとすると TypeError $hoge_id

    PHP で型付のローカル変数を定義するライブラリを作った - Qiita
  • PHP の関数実行とその計測(記事版) - Qiita

    こんなコードのものですね。 まずはこのコードが処理系によってどう実行されているかの話からです。 Zend Engine の概要 この中に Zend Engine というのを聞いたことがある方はどのくらいいらっしゃいますでしょうか。 (けっこう手が上がる筈) ありがとうございます、では Zend Engine が何のことか、雑になんとなく分かる、という方はどのくらいいらっしゃいますでしょうか。 (けっこう減る筈) ありがとうございます。 Zend Engine は PHP の公式処理系のコア部分です。php.net で配布されている、いわゆる公式処理系です。かつて PHP 4 の頃に、 Zeev さんという人と Andi さんという人が中心となって、PHP 3 までの処理系を大きくリニューアルしました。彼らの名前から 2 文字ずつとって、Zend Engine と処理系のコアが名付けられまし

    PHP の関数実行とその計測(記事版) - Qiita
  • どんな時にクラスを final と宣言するのか

    Ocramius さんの記事、When to declare classes final を、ご人の許可を得て翻訳してみました。 Ocramius さんありがとー。 誤訳等にお気付きの際は、コメントや編集リクエストをもらえると助かります。 まとめ:インタフェースを実装していて他のパブリックメソッドが定義されていない場合、いつもクラスを final にしてください。 この 1 ヶ月で、私は PHP クラスへの finalの使い方について何度か議論をしました。 そして以下のような流れが繰り返されました。 私が新しく作られたクラスへ final を宣言するよう頼む コードを書いた人は嫌がり final は柔軟性を損なうと主張 柔軟性は良い抽象化から生まれるのであって、継承から生まれるのではないという説明が必要となる この流れから明らかなのは、コードを書く人達にどんな時に final を使うのか

    どんな時にクラスを final と宣言するのか
    ko-ya-ma
    ko-ya-ma 2019/05/15
    ていねいに説明してくれている。布教用教材に
  • 1