2022年12月7日 (水)
2022年11月29日 (火)
→ジェネレター: ジェネレター関数は、値を返す代わりに、yieldで必要なだけの値を生成することを除けば、通常の関数と同じように見えます。 yieldを含む関数はすべてジェネレター関数です。 ジェネレター関数が呼び出されると、繰返し実行可能なオブジェクト(iterable型のオブジェクト)が返されます。 そのオブジェクトに対して反復処理を行うと (たとえば foreach ループで)、 PHP は値が必要になるたびにオブジェクトの反復処理用メソッドをコールし、 ジェネレターが値を返した時点でその状態を保存して、次の値が必要になったときに再開できるようにします。 生成する値がなくなったら、ジェネレターは単に終了し、呼出し元のコードは配列の値がなくなったときと同じように続行できます。
+1,948
→array_*関数の拡張: ln
+621
→array_*関数の拡張: 結果を説明的に
+1,449
→コードキャラリー: まとまった規模で、実用的な目的に叶うコードを読まないと機能の存在理由などの言語設計に思い至りにくいので、コードの断片から少し踏み込んだプログラムを掲載します。 →array_*関数の拡張: PHPの組込み関数には、array_reduce(),array_map() のように array_ はじまる配列関数群があります。 これらは便利なのですが、配列とハッシュ兼用でJavaScriptやRubyなどから来ると面食らうことがあります。 また、配列の添字がcallback関数にわたらない仕様も移植のときに問題になります。 そこで、上記の問題をクリアした配列専用の関数群を作ってみました。 また、sum() は、カハンの加算アルゴリズムを使い誤差を最小にするようにしています。
+3,660
→再帰的呼出し: 関数は、自分の定義の中に自分を含めることができます。
+2,002
→変数のスコープ: マークアップ修正
−6
→型宣言: 型宣言のある関数定義の書式
+222
→ユーザー定義関数: PHPでは、ひとまとまりの処理に名前をつけ、あとから何度も呼出せるようにする仕組みがあります。 これを関数(かんすう;【英】Function)といいます。 関数を作ることを、「関数定義」関数を使うことを「関数呼出し」といいます。 PHPには、すでに有用な関数が多数用意されており、これらを「組込み関数」と呼びます。 プログラマーは、組込み関数・文・式を組合わせて新しい関数を定義することができます。 新しく定義された関数を「ユーザー定義関数」と呼びます。
+333
→関数の引数と戻値: PHPの関数は、0個以上の引数を渡し1つの戻値を返すことができます。 可変長引数や引数のディフォルト値、またキーワード引数もサポートしています。
+1,231
→変数のスコープ: PHPでは、名前空間のトップレベルで代入された変数をグローバル変数と呼び、関数内で代入された変数をローカル変数と呼びます。 PHPに変数宣言はないので、最初の代入が宣言に準じた扱いになります。 関数内のローカル変数は(static 宣言されなければ)動的で、関数を抜けると揮発します。 関数の中から、グローバル変数を参照するには、3つの方法があります。
+851
→無名関数: 関数の中で関数を定義してもクロージャーにはなりませんが、無名関数でクロージャーを実現できます。 PHPには、無名関数を定義する方法に、アロー関数と関数式の2つがあります。
+871
2022年6月10日 (金)
→型指定の新機能: PHPの新旧によって、異なる型の加減乗除では型の扱いが異なるので、事前にテストして確認しておきましょう。
+262
→型指定の新機能: PHP8.1以降は仕様が従来と違っている。
+15
→型指定の新機能: ※ PHP8.2αでテストしたところ、 5099.1234 になった。
+70
2021年10月31日 (日)
2020年6月27日 (土)
2020年6月24日 (水)
global演算子の効果の説明を修正。
+536
→発展的な話題
+30
→発展的な話題
+269
内部関数は発展の単元あつかい
+38
内部関数
+1,108
編集の要約なし
+323
→値を返す関数
+85
→値を返す関数
+423
→値を返す関数
+5
→PHPにおけるユーザー定義関数の基本
+18
→変数のスコープ
+113
→変数のスコープ: 変数名がnでなくs
→変数のスコープ: 改行タグが抜けている。
+15
→変数のスコープ: 関数の呼び出しが抜けている。
+5
→変数のスコープ
+52
→PHPにおけるユーザー定義関数の基本: $nがあるとコマンドラインではエラーになる。
−2