PHP5 権威プログラミング読書学習ノート (電子書籍ダウンロード付き)
PHP 5 Power Programming PDF ダウンロードアドレス http://www.jb51.net/books/28207.html
PHP4 では、コンストラクターの名前として __construct() は使用されません。メソッドを定義する必要があります。 C と同じように、クラスの名前を使用します。
PHP5 では、新しい統合コンストラクター命名メソッド __construct() が使用されます。もちろん、クラス名を使用することもできます。
ただし、両方を同時に使用すると、システムはデフォルトで __construct() を使用します。
コードをコピー コードは次のとおりです:
class Person{
// in PHP4 Method
public function Person(){
echo "PHP4 のメソッド";
}
//PHP5 の推奨メソッド
public function __construct(){
echo "PHP5推奨メソッド";
}
public functionsay(){
}
}
$p1=new Person();
?>
コンストラクターでは値を返すことができないため、コンストラクターからエラーを生成する最も一般的な方法は例外をスローすることです。
コードは次のとおりです:
コードをコピーします コードは次のとおりです:
class Person{
private $_age;
public function __construct($age){
try {
if ($age$this->_age=$age ;
}else {
throw new Exception("入力した年齢が古すぎます");
}
}catch (Exception $e){
echo $e->getMessage ();
}
}
}
$p1=新しい人
?>
; オブジェクト属性へのアクセス 保護は OOP の重要なパラダイムです
パブリック: どこからでもアクセスできます
保護: クラス メンバーは、オブジェクト内のメソッドから、そのメンバーが配置されているクラスのサブクラスおよびスーパークラスからアクセスできます
プライベート: クラス メンバーのみ そのクラスによってオブジェクト内のメソッドからアクセスできますが、継承されたクラスのメンバーからはアクセスできません。プライベート メンバーは継承されないため、関連する 2 つのクラスが同じ名前のプライベート変数を宣言できます。
つまり、どちらのクラスも自身のプライベート プロパティのみを参照でき、プライベート メンバー間には関係がありません。
例:
コードをコピー コードは次のとおりです:
/**
* MyClass を定義
*/
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private'; function printHello( )
{
echo $this->public;
echo $this->private;
}
$ obj = new MyClass();
echo $obj->public; // この行は通常どおり実行できます
echo $obj->protected; // この行は致命的なエラーを生成します
echo $obj->private; // この行も致命的なエラーを生成します
$obj->printHello() // 出力 Public、Protected、Private
/**
* MyClass2 を定義
* /
class MyClass2 extends MyClass
{
// public と protected は再定義できますが、private ですが
protected ではありません $protected = 'Protected2';
function printHello()
{
echo $this->public;
echo $this->private;
}
}
$obj2( ) ;
echo $obj->public; // この行は通常どおり実行できます
echo $obj2->private; // プライベートは定義されていません
echo $obj2->protected; / this この行は致命的なエラーを生成します
$obj2->printHello(); // Public と Protected2 を出力しますが、Private は出力しません
注: クラス内のすべてのメソッドはキーワードを使用する必要がありますpublic、protected、または private を定義します。これらのキーワードが設定されていない場合、メソッドはデフォルトの public に設定されます。
静的メソッド
コードをコピー
コードは次のとおりです:
class Foo {
public static $my_static = 'foo';public static function staticValue() {
return self::$my_static // クラス内の静的メンバーにアクセスするには self キーワードを使用します
}
$obj=new Foo();
echo $obj->staticValue();//メソッド 1
echo Foo::staticValue();//メソッド 2
?>
Clone object
PHP4 では、新しいオブジェクトが返されると、そのオブジェクト自体が返されます。
PHP5 では、新しいオブジェクトが返されると、そのオブジェクトが返されます。 Handle"
これは、PHP5 でオブジェクト インスタンス ($obj1) を別の変数 ($obj2) に割り当てるときに、両方のオブジェクトが同じメモリ領域を指すことを意味します。
例:
コードをコピー コードは次のとおりです:
クラス テスト{
public $str;
}
$obj1=new test();
$obj2= $obj1; obj2-> str="obj2";
echo $obj1->str;// "obj1" を出力します
$obj1 と $obj2 がポイントなのでこのため、オブジェクトを使用してメンバー変数の値を変更すると、別のオブジェクトに影響を与えます。
ただし、オブジェクトのコピー (2 つの独立したメモリ領域) を作成する必要がある場合があります。このとき、言語コマンド clone を使用できます。
コードをコピー
コードは次のとおりです。 class test{
public $str;
}
$obj1= 新しいテスト();
$obj1->str="obj1";
$obj2= クローン
$obj2->str="obj2"; >echo $obj1- >str;//"obj2" が出力されます
?>
parent:: および self::
parent:: 親クラスを指します。多くの場合、親クラスのコンストラクターとメソッドを呼び出すために使用されます。親クラスのメンバーと定数にアクセスするために使用されます 注: クラスの階層を簡単に変更できるため、親クラスの特定の名前の代わりにparent::を使用する必要があります。 例:
コードをコピー
コードは次のとおりです: class Father{
public function __construct(){echo "親クラスのコンストラクターを呼び出す
";
}
}
class Son extends Father {
public function __construct() {
parent::__construct();//メソッド 1
// Father::__construct();//メソッド 2
echo "サブクラスのコンストラクターを呼び出す"
}
}
$son=new Son();
?>
結果:
親クラスのコンストラクターを呼び出します
サブクラスのコンストラクターを呼び出します
インスタンスのインスタンス
コードをコピー
コードは次のとおりです: クラス Rectangle {
public $name=__CLASS__;}
class Square extends Rectangle {
public $name=__CLASS__;
public $name= __CLASS__;
}
関数 checkIfRectangle($shape){
if ($shape インスタンスオブ Rectangle ){
echo $shape->name;
echo "オブジェクトは Rectangle クラスのインスタンスではありません";
}
}
checkIfRectangle(new Square());//出力: Square
checkIfRectangle(new Circle()); //出力: オブジェクトは Rectangle クラスのインスタンスではありません
?>
注: __CLASS__ は、現在のクラスの名前を格納するために使用される特別な定数です。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
