検索
ホームページphp教程php手册PHPの基礎知識:クラスとオブジェクト(1)

PHPの基礎知識:クラスとオブジェクト(1)

Jun 13, 2016 pm 12:35 PM
classphpそしてによるキーワードできる基本知識意味物体始まりはい親切クラス名いいえ

クラス定義:
はキーワード class で始まり、その後にクラス名が続きます。クラス名は、PHP 予約語以外の任意の名前にすることができます。その後に 1 対の中括弧が続き、クラス メンバーとメソッドの定義が含まれます。

疑似変数 $this
は、 オブジェクト 内でメソッドが呼び出されるときに使用できます。 $this は呼び出し元オブジェクトへの参照です (通常はメソッドが属するオブジェクトですが、メソッドが 2 番目のオブジェクト内から静的に呼び出される場合は別のオブジェクトになることもあります)。
//??静的呼び出しの内部関数は何ですか?
例を見てください:
class A
{
function foo ( )
{
if (isset($this)) {
echo '$this が定義されています (';
echo get_class($this);
echo ")n";
」 $this は定義されていません。n";
A::foo();
}
}
$a = new A();
$a->; foo();
A::foo() ;
$b = new B();
$b->bar();
B::bar();

出力結果は次のとおりです。

$this は定義されています (a)
$this は定義されていません。
$this は定義されています (b)
$this は定義されていません。

/*これだけは知っておきたい サンプルメモリの具体的な実装などが理解できません。わかりやすく説明できる人がいたら教えてください。寮の牛頭は今冬眠中です、目が覚めたら聞いてみます。 */

new

オブジェクトのインスタンスを作成するには、新しいオブジェクトを作成して変数に割り当てる必要があります。新しいオブジェクトには、オブジェクトがコンストラクターを定義し、エラーで例外がスローされない限り、作成時に常に値が割り当てられます。
オブジェクトの既に作成されたインスタンスを新しい変数に割り当てると、新しい変数はオブジェクトに割り当てられた場合と同じインスタンスにアクセスします。この動作は、インスタンスを関数に渡すときと同じです。クローン作成を使用して、すでに作成されたオブジェクトの新しいインスタンスを作成できます。

(短い文ですが、わかりにくいかもしれません。)

例は次のとおりです。
class SimpleClass
{
// メンバー宣言
public $var = 'デフォルト値';

// メソッド宣言
public function displayVar() {
echo $this->var;
}
}

//下の図を見てください。1>new はヒープ (ヒープ) 内のオブジェクトをインスタンス化します。 2> ポインタ $instance を彼に指す
$instance = new SimpleClass();

//3> ポインタ $assigned をヒープ内のインスタンス化されたオブジェクトに指す
$ assign = $instance;
//4>$instance のリファレンス (アドレス) を $reference
$reference =& $instance;
$instance->var = '$assigned will have this value';
$instance = null; // 5> $instance とヒープ内のインスタンス間の接続を中断します。
var_dump($instance);
var_dump($reference);var_dump($assigned);
出力:
NULL
NULL
object(SimpleClass)#1 (1) { ["var"]=>
string(30) "$assigned will have this value"
}
図プロセス全体:


クラス継承 extends
クラスは、宣言内で extends キーワードを使用して、別のクラスのメソッドとメンバーを継承できます。複数のクラスを拡張することはできません。継承できるのは 1 つの基本クラスのみです。


継承されたメソッドとメンバーは、親クラスがメソッドの定義時に Final キーワードを使用しない限り、同じ名前で再宣言することでオーバーライドできます。オーバーライドされたメソッドまたはメンバーには、parent:: を通じてアクセスできます。

(継承の仕組みは何ですか?)
ソースコードは次のとおりです:
class ExtendClass extends SimpleClass

{

// 親を再定義しますMethod function displayVar() { echo "クラスn の拡張";parent::displayVar();
}
}$extended = new ExtendClass();
$extended->displayVar();

出力:

クラスの拡張
デフォルト値



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

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

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール