タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

phpとitとclassに関するItisangoのブックマーク (6)

  • PHP: 共変性と反変性 - Manual

    共変性と反変性 PHP 7.2.0 で、子クラスのメソッドの引数の型の制限を除く形で、反変性が一部サポートされました。 PHP 7.4.0 以降で、共変性と反変性が完全にサポートされるようになりました。 共変性とは、子クラスのメソッドが、親クラスの戻り値よりも、より特定の、狭い型を返すことを許すことです。 反変性とは、親クラスのものよりも、より抽象的な、広い型を引数に指定することを許すものです。 型宣言は以下の場合に、より特定の、狭い型であると見なされます: union 型 から、特定の型が削除されている場合 特定の型が 交差型 に追加されている場合 クラスの型が、子クラスの型に変更されている場合 iterable が 配列 または Traversable に変更されている場合 上記と反対のことが当てはまる場合は、より抽象的な、広い型であると見なされます。 <?php abstract c

    PHP: 共変性と反変性 - Manual
    Itisango
    Itisango 2023/08/10
    7.4.0 以降で、共変性と反変性がサポートされる。共変性とは、子クラスのメソッドが、親クラスの戻り値よりも、狭い型を返すことを許す。反変性とは、親クラスのものよりも、広い型を引数に指定することを許す。
  • PHP: 遅延静的束縛 (Late Static Bindings) - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: 遅延静的束縛 (Late Static Bindings) - Manual
    Itisango
    Itisango 2023/08/10
    遅延静的束縛と呼ばれる機能が搭載されています。 静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。より正確に言うと、遅延静的束縛は直近の "非転送コール" のクラス名を保存します
  • PHP: オブジェクトの比較 - Manual

    オブジェクトの比較 比較演算子(==)を使用する際、 オブジェクト変数は、単純に比較されます。つまり、 二つのオブジェクトのインスタンスは、 同じ属性と値 (値の比較は == によるもの) を有し、同じクラスのインスタンスである場合に、 等しいとされます。 一致演算子(===)を使用する場合、 オブジェクト変数は、同じクラスの同じインスタンスを参照する場合のみ、 等しいとされます。 これらのルールを明確に示す例を以下に示します。 <?php function bool2str($bool) { if ($bool === false) { return 'FALSE'; } else { return 'TRUE'; } } function compareObjects(&$o1, &$o2) { echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "

    PHP: オブジェクトの比較 - Manual
    Itisango
    Itisango 2023/08/10
    比較演算子(==)を使用する際、 オブジェクト変数は、単純に比較されます。 二つのオブジェクトのインスタンスは、 同じ属性と値 (値の比較は == によるもの) を有し、同じクラスのインスタンスである場合に、 等しい
  • PHP: finalキーワード - Manual

    finalキーワード キーワード final を前に付けて定義されたメソッドやプロパティ、定数は、子クラスからオーバーライドできません。 クラス自体がfinalと定義された場合には、このクラスを拡張することはできません。 <?php class BaseClass { public function test() { echo "BaseClass::test() called\n"; } final public function moreTesting() { echo "BaseClass::moreTesting() called\n"; } } class ChildClass extends BaseClass { public function moreTesting() { echo "ChildClass::moreTesting() called\n"; } } //

    PHP: finalキーワード - Manual
    Itisango
    Itisango 2023/08/10
    プロパティを final として宣言することはできません。 final として宣言できるのはクラスとメソッド、 および定数(PHP 8.1.0以降)だけです。 PHP 8.0.0 以降は、private メソッドを final として宣言できるのはコンストラクタだけ
  • PHP: クラス定数 - Manual

    クラス定数 値が変更できない 定数 をクラス内に定義することができます。 クラス定数のデフォルトのアクセス範囲は public です。 注意: クラス定数は、子クラスで再定義することもできます。 PHP 8.1.0 以降では、final として定義されたクラス定数は、子クラスで再定義できません。 インターフェイスに定数を持たせることもできます。 インターフェイスについてのドキュメント で例を御覧ください。 変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 static といった) キーワードを指定することはできません。 クラス定数はクラス単位で割り当てられるものです。インスタンス単位ではないことに注意しましょう。 PHP 8.3.0 以降では、クラス定数は bool, int, float, string, array のようなスカラー型を持つことが

    PHP: クラス定数 - Manual
    Itisango
    Itisango 2023/08/10
    クラス定数は、子クラスで再定義することもできます。 PHP 8.1.0 以降では、final として定義されたクラス定数は、子クラスで再定義できません。インターフェイスに 定数 を持たせることもできます。
  • PHP: クラスの基礎 - Manual

    class 各クラスの定義は、classキーワードで始まり、クラス名が続きます。 そしてその後に波括弧のペアが続き、 その中にはクラスのプロパティとメソッドの定義を記述します。 クラス名には、PHP の予約語 以外でラベルとして有効なあらゆる名前を使用することができます。 PHP 8.4.0 以降では、アンダースコア (_) 1文字のみのクラス名は非推奨となりました。 有効なクラス名は、先頭が文字あるいはアンダースコアで始まり、 その後に任意の数の文字/数字/アンダースコアが続くものです。 正規表現で表すと、 ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ のようになります。 クラスの中には、 定数 や 変数 ("プロパティ" といいます) そして関数 ("メソッド" といいます) を含めることができます。

    PHP: クラスの基礎 - Manual
    Itisango
    Itisango 2023/08/10
    クラスにreadonly を指定することができます。 クラスに対して readonly を指定すると、 宣言されている全ての プロパティに対して readonly を指定した ことになり、 かつ 動的なプロパティ の作成を禁止したことになります
  • 1