new static() と new self() の違いと類似点、staticself_PHP チュートリアル
new static() と new self()、staticself の違いと類似点
長い夜です!
今日は地元チームを率いてウェブサイトを構築します。 PHP 5.2 ではビルドできないことがわかり、Web サイトの PHP コードには 5.3 以降の部分が多く含まれていたため、5.2 で実行できるように変更するように言われました。
着替えて場所を見つけました
リーリーこの馬はすごい、一度しか見たことがない
リーリーそこで、この 2 つの違いをオンラインで調べてみました。
self - これはこのクラス、コードセグメント内のこのクラスです。
static - PHP 5.3 は、$this に似た現在のクラスを追加するだけです。これはヒープ メモリから抽出され、現在インスタンス化されているクラスにアクセスするため、static はそのクラスを表します。
外国人による専門的な解説を見てみましょう。
self
refers to the same class whose method the new
操作は
static
は、メソッドを呼び出す階層内のクラスを参照します。
次の例では、B
は A
から両方のメソッドを継承します。self
は A
に定義されているため、バインドされています。 A
による最初のメソッドの実装ですが、B
inherits both methods from A
. self
is bound to A
because it's defined in A
's implementation of the first method, whereas static
is bound to the called class (also see <span><span>get_called_class()</span></span>
は呼び出されたクラスにバインドされています (<span><span>get_called_class()</span></span>
も参照)。
リーリーこの例は基本的に一目で理解するのが簡単です。
原理は理解できましたが、 return new static($val); の問題をどうやって解決すればよいでしょうか? get_class($this); 如下
色々ありますね。ふふ。詳しく教えてください。
1. new と new[] の違い
New は、単一のオブジェクトまたはインスタンスを作成するために使用され、クラスのコンストラクターを呼び出します。
new [] はオブジェクトまたはインスタンスの配列インスタンスを作成するために使用され、アドレスは連続しています。 (メモリ割り当ては連続的ではないかもしれませんが、アドレスリストは連続的です。)
2. 仮想関数 (これについては説明できません。例を挙げることしかできません)
class person
{
public:
virtualsay();
}
クラス技術者 : 一般人
{
一般人 :
protected override Say();
}
クラス学生 : public person
{
public :
protected override Say();
}
3 人目は何を理解していませんでしたかそれは意味した。 最初の 2 つは理解できるかどうかわかりません。そうでない場合は、私に連絡してください。
Javaでは
public static void main(String args[])はメインメソッドです。
Javaプログラムは複数のメソッドを持つことができますが、存在できるのは1つのみです。
ststicで変更されたメソッドはクラスメソッド(main.もクラスメソッドです)。 A a=new A() は静的なインスタンス オブジェクトを作成し、装飾として機能します

ホット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)

ホットトピック









マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

C言語関数は、コードモジュール化とプログラム構築の基礎です。それらは、宣言(関数ヘッダー)と定義(関数体)で構成されています。 C言語は値を使用してパラメーターをデフォルトで渡しますが、外部変数はアドレスパスを使用して変更することもできます。関数は返品値を持つか、または持たない場合があり、返品値のタイプは宣言と一致する必要があります。機能の命名は、ラクダを使用するか、命名法を強調して、明確で理解しやすい必要があります。単一の責任の原則に従い、機能をシンプルに保ち、メンテナビリティと読みやすさを向上させます。

CとC#には類似点がありますが、それらは完全に異なります。Cはプロセス指向の手動メモリ管理、およびシステムプログラミングに使用されるプラットフォーム依存言語です。 C#は、デスクトップ、Webアプリケーション、ゲーム開発に使用されるオブジェクト指向のガベージコレクション、およびプラットフォーム非依存言語です。

JavaScriptのDOMノードの下でのXpath検索方法の詳細な説明、XPath式に基づいてDOMツリーから特定のノードを見つける必要があることがよくあります。あなたがする必要があるなら...

マルチスレッドは、コンピュータープログラミングの重要なテクノロジーであり、プログラムの実行効率を改善するために使用されます。 C言語では、スレッドライブラリ、POSIXスレッド、Windows APIなど、マルチスレッドを実装する多くの方法があります。

CharおよびUnsigned Charは、文字データを保存する2つのデータ型です。主な違いは、負と正の数に対処する方法です:値範囲:char署名(-128〜127)、および符号なしのchar unsigned(0〜255)。負の数処理:charは負の数を保存でき、符号なしのcharはできません。ビットモード:char最高ビットは、シンボル、符号なしのchar unsignedビットを表します。算術操作:charおよびunsigned charが署名されており、署名されていないタイプがあり、それらの算術操作は異なります。互換性:charおよびunsigned char
