PHPの基礎知識:クラスとオブジェクト (5) static_PHPチュートリアル
クラスのメンバーまたはメソッドを static として宣言すると、クラスのインスタンス化を必要とせずにアクセスできるようになります。
static として宣言したメンバーは、インスタンス化されたクラス オブジェクトではアクセスできません (ただし、static メソッドは呼び出すことができます)。クラスオブジェクトをインスタンス化せずにそれらを実行します。静的クラスはクラス オブジェクトから呼び出すことはできません。 (クラスの静的メソッドは問題ありません)。 //最初の例では、静的変数が非静的メソッドで呼び出されていることに注意してください。唯一の違いは、self の使用です。 self を使用することは可能ですか????わかりません???テストが必要です。
PHP4 との互換性のために、static 宣言は可視性宣言の後になければなりません。可視性宣言が使用されない場合、メンバーまたはメソッドは public として宣言されているかのように扱われます。
static 宣言は明示的宣言である必要があります。 PHP4との互換性を保つため、明示的に宣言されたオブジェクトやメソッドがない場合は、publicとして宣言されたものとみなされます。
静的メソッドはオブジェクトのインスタンスを作成しなくても呼び出すことができるため、静的として宣言されたメソッド内では疑似変数 $this を使用できません。
静的メソッドは呼び出すためにクラス オブジェクトをインスタンス化する必要がないため、疑似変数 $this は使用できません。静的メソッドでは使用できません。実際、静的メソッドの呼び出しはコンパイル時に解決されます。明示的なクラス名を使用すると、メソッドはすでに完全に識別されており、呼び出しが self によって行われる場合、self は現在のクラスに変換されます。コードが属するクラス。ここでも継承規則は適用されません。実際には、静的メソッドの呼び出しはコンパイル時に決定されます。 (この段落の翻訳方法がわかりません。???わかりません???)
私が長い間求めていた翻訳は次のとおりです:
--------- ------------- ------------------------
実際には、静的メソッドの呼び出しはコンパイル時に解決されます。時間。明示的なクラス名を使用すると、メソッドは継承ルールを適用しなくても完全に認識されます。単独で呼び出された場合、それ自体が現在のクラス (コードが属するクラス) に解決されます。ここでも継承ルールは適用されません。
しかし、新たな質問:
ここには継承がないかもしれないのに、なぜ継承ルールが記載されているのでしょうか? (???理解できません???)
矢印演算子 -> を使用してオブジェクトを通じて静的プロパティにアクセスすることはできません。非静的メソッドを静的に呼び出すと、E_STRICT レベルの警告が生成されます。
静的メンバーは、矢印記号 -> を使用してクラスのオブジェクトから呼び出すことはできません。非静的メソッドを静的に呼び出すと、E_STRICT レベルの警告が発生します。
静的メンバーの例:
コードをコピー
{
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;//ここに注意してください!!!!
//return $my_static;//このように書くと間違いありません。テストする必要があります
}
}
class Bar extends Foo
{
public function fooStatic() {
parent::$my_static;//ここに注意してください!!!
}
}
print Foo::$my_static " n";
$foo = new Foo();
print $foo->staticValue() . " n";
print $foo->my_static . " n"; // 未定義の「プロパティ」 my_static
// $foo::my_static は不可能です
print Bar::$my_static . " n";
$bar->fooStatic() . 例:
クラスfoo {
public static関数astaticmethod(){
http://www.bkjia.com/PHPjc/317402.html
www.bkjia.com
http://www.bkjia.com/PHPjc/317402.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
