ホームページ バックエンド開発 PHPチュートリアル PHPクラスのself、parent、thisの違いとexamples_PHPチュートリアルの紹介

PHPクラスのself、parent、thisの違いとexamples_PHPチュートリアルの紹介

Jul 21, 2016 pm 03:11 PM
class parent php self this 1つ 導入 違い はい 使いたい

一つ、これ

1. これを使用するには、オブジェクト コンテキストが必要です。そうでない場合は、致命的なエラー: オブジェクト コンテキストにない場合の $this の使用というエラーが報告されます。
2. このクラスのメソッドと属性、または親クラスの調整可能なメソッドと属性を呼び出すことができます

二人、自分

1. self は、このクラスの静的プロパティと静的メソッドにアクセスでき、親クラスの静的プロパティと静的メソッドにアクセスできます。
2. self を使用する場合はインスタンス化する必要はありません


三、親

1. 親は親クラスの静的プロパティと静的メソッドにアクセスできます。
2. 親を使用する場合はインスタンス化する必要はありません

コードをコピーします コードは次のとおりです:

クラステスト{
public $public;
private $private;
protected $protected;
static $instance;
static $good = 'tankzhang
';
public $tank = 'zhangying
';

public function __construct(){
$this->public = 'public
';
$this->private = 'private
';
$this->protected = 'protected < ;br>';

B}

Public 関数 Tank () {// Private メソッドは継承できず、Public, ProteCted に置き換えられます
IF (! Isset (Self :: Get_class ()])
{
$ c = get_class ();
self:: $instance = new $c;
}
return self::$instance;
}

public function pub_function() {

echo "あなたは public function
をリクエストしています";
echo $this->public;
}
protected function pro_function(){
echo "あなたは protected function
をリクエストしています";
echo $this->protected;
}
プライベート関数 pri_function(){
echo "プライベート関数をリクエストしました
";
echo $this->private;
}
static 関数 sta_function(){
echo "静的関数をリクエストしました
";
}
}
クラス test1 はテストを拡張します{

static $love = "tank
";

private $aaaaaaa = "ying
";

パブリック関数__construct(){

parent::tank();
parent::__construct();
}
パブリック関数tank(){
echo $this->public;
echo $this->protected;
echo $this->aaaaaaa;
$this->pro_function();
}

public function test1_function(){

echo self::$love;
echo self::$good;
echoparent::$good;
echoparent::$tank; //致命的なエラー: 未宣言の静的プロパティへのアクセス: test::$tank
echo self::$tank; //致命的なエラー: 宣言されていない静的プロパティへのアクセス: test::$tank
}
static function extends_function(){
parent::sta_function();
self:: pro_function();
echo "extends_private 関数をリクエストしました
";
}
}
error_reporting(E_ALL);

$test = new test1();
$test->tank(); //サブクラスと親クラスには同じ名前の属性とメソッドがあります。サブクラスがインスタンス化されると、サブクラスも同じ名前になります。でメソッドが呼び出されます。
test1::test1_function();
test1::extends_function(); //一部の実行後、致命的なエラーが報告されます: D:xampphtdocsmytestwww4.php の 32 行目でオブジェクト コンテキストにない場合に $this を使用します
?>

1. $test->tank(); メソッドを呼び出すと、タンク内の $this はこのクラスと親クラスのメソッドと属性を呼び出すことができます。

2, test1::test1_function(); 静的メソッドを使用して非静的メソッドを呼び出すと、非静的メソッド test::test1_function() を静的に呼び出してはいけないという警告が表示されます。いいえ、自分自身はできます。このクラスを呼び出すとき、親は親クラスの静的プロパティを呼び出すことができます。非静的プロパティを呼び出すと、どちらもエラーを報告します。コード内にコメントがあります

3, test1::extends_function(); このステップでは、$this がオブジェクト以外で使用されていることを報告するエラーが報告されます。これはなぜでしょうか? test1::extends_function(); はクラス内のメソッドを呼び出すだけでインスタンス化されないため、親クラスで $this が使用されるとエラーが報告されます。

http://www.bkjia.com/PHPjc/326809.html

tru​​ehttp://www.bkjia.com/PHPjc/326809.html技術記事 1. this 1. これを使用するには、オブジェクト コンテキストが必要です。そうでない場合は、エラー「致命的エラー: オブジェクト コンテキスト内にないときの $this の使用」が報告されます。 2. これは、このクラスのメソッドと...
を呼び出すことができます
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

C言語関数の基本的な要件は何ですか C言語関数の基本的な要件は何ですか Apr 03, 2025 pm 10:06 PM

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

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

CとC#の違いと接続は何ですか? CとC#の違いと接続は何ですか? Apr 03, 2025 pm 10:36 PM

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

XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? Apr 04, 2025 pm 11:15 PM

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

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Apr 05, 2025 pm 01:03 PM

Vueアプリケーションを開発するときに、ルーターフォルダーの下にindex.jsファイルにvuerouterを登録する必要性があるため、ルーティング構成で問題が発生することがよくあります。特別...

See all articles