1.construct()
インスタンス化されたオブジェクトが自動的に呼び出されます。 Construct は、construct とそのクラス名と関数名の関数が同時に存在する場合に呼び出され、もう一方は呼び出されません。
クラス名と関数名が付いている関数は古いバージョンのコンストラクターです。
2.destruct()
は、オブジェクトを削除するとき、またはオブジェクトの操作が終了するときに呼び出されます。
3.call()
オブジェクトはメソッドを呼び出します。メソッドが存在しない場合は、このメソッドを呼び出します
4.get()
オブジェクトのプロパティを読み取り、オブジェクトのプロパティがプライベートの場合、値を代入するときに
5.set()
Ifを呼び出します。オブジェクトのプロパティ プロパティが private の場合に呼び出されます
6.toString()
オブジェクトを印刷するときに呼び出されます。
7.clone()
は、次のようにオブジェクトのクローンを作成するときに呼び出されます: $a=new test(); $a1=clone $a;
8.sleep()
の場合、Serializeが前に呼び出されます。オブジェクト比較 大きいので、シリアル化中にいくつかのものを削除したい場合に使用できます。
9.wakeup() は、オブジェクトの初期化作業を行うために、Unserialize 中に呼び出されます。 10.isset() オブジェクトの属性が存在するかどうかを検出します。検出された属性がプライベートである場合に呼び出されます。 11.unset()オブジェクト属性を削除する場合、削除されたオブジェクト属性がプライベートである場合に呼び出されます。12.set_state() var_export が呼び出されたときに呼び出されます。 set_state の戻り値を var_export の戻り値として使用します。 13.autoload()オブジェクトをインスタンス化する際、対応するクラスが存在しない場合、このメソッドは無視されます。以下のエディターでは、
PHP オブジェクト指向よく使用されるキーワードと魔法のメソッドについて詳しく説明します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして見てみましょう
オブジェクト指向 PHP 2 でよく使用されるキーワード。Final はクラスとメソッドのみを変更できます機能:
final で変更されたクラスはサブクラスに継承できません Final で変更されたメソッドはサブクラスによってオーバーライドできません
クラスの継承とメソッドの継承を制限するために使用されます。オーバーライドするには、final<?php //final修饰的类不能被继承 final class Person{ var $name; var $age; var $sex; function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function fun1(){ echo $this->name; } } //Student类继承类用final修饰的Person类,所以会报错 class Student extends Person{ } $stu=new Student("zs",20,"nan"); $stu->fun1(); ?>static (static キーワード) を使用します
1。およびメンバーメソッドは変更できますが、クラスは変更できません
2. static で変更されたメンバープロパティは同じクラスで変更できますすべてのオブジェクトが共有されます
3. 静的データはメモリ内のデータセグメントに保存されます (静的セグメントの初期化)
4 . 静的データは、クラスが初めてロードされるときにメモリに割り当てられ、後で使用されます。クラスがロードされると、データセグメントから直接取得されます
5. ロードされたクラスとは何ですか?このクラスがプログラム内で使用されている限り(このクラス名が表示されます)6. 静的メソッド(静的に変更されたメソッド)は非静的メンバーにアクセスできません(静的メンバーは非静的メソッドでアクセスできます)非静的メンバーはオブジェクトを使用してアクセスする必要があります。内部メンバーにアクセスするには、静的メソッドをオブジェクトで呼び出す必要がないため、非静的メンバーも使用できるオブジェクトはありません。オブジェクト
メソッド内で非静的メンバーが使用されていないことが確実な場合は、このメソッドを静的メソッドとして宣言できます
注: 静的メンバーにはクラス名を使用してアクセスする必要があり、
オブジェクトを作成しないでください。オブジェクトアクセスは使用しない
クラス名::静的メンバー
クラスで静的メンバーを使用する場合、selfを使用してクラスを表すことができます
const
1。メンバー属性のみを変更できます。 2. クラス内で定数属性を宣言するには const を使用します
3. アクセス方法は静的メンバーのプロパティと同じです (クラス外では class name::constant を使用し、クラス内では self::constant を使用します)
4. 定数は必須です。宣言時に初期値が与えられる
<?php //定义一个类“人们” class Person{ protected $name; protected $age; protected $sex; static $country="中国"; //声明一个常量 const RUN="走"; //构造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在类中使用静态成员,可以使用self代表本类 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>"; } protected function eat(){ echo "吃饭!<br>"; } function run(){ //在类的内部使用常量 self::常量 echo self::RUN."<br>"; } //声明静态的方法 static function hello(){ echo "你好<br>"; } }
PHP オブジェクト指向でよく使われるマジックメソッド
call()
機能:オブジェクトに存在しないメソッドを呼び出す場合、システムエラーが表示され、プログラムが終了します。
自動的に呼び出す場合: オブジェクトに存在しないメソッドを呼び出すときに自動的に呼び出されます存在しないエラー呼び出しを処理しますこのメソッドには 2 つのパラメータが必要です
<?php //定义一个类“人们” class Person{ protected $name; protected $age; protected $sex; static $country="中国"; //声明一个常量 const RUN="走"; //构造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在类中使用静态成员,可以使用self代表本类 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>"; } protected function eat(){ echo "吃饭!<br>"; } function run(){ //在类的内部使用常量 self::常量 echo self::RUN."<br>"; } //处理一些不存在的错误调用 //就会在调用一个对象中不存在的方法时就会自动调用 function call($methodName,$args){ //$methodName调用不存在方法的方法名 $args里面的参数 echo "你调用的方法{$methodName}(参数:"; print_r($args); echo ")不存在<br>"; } //声明静态的方法 static function hello(){ echo "你好<br>"; } } $p=new Person("张三",20,"女"); $p->test(10,20,30); $p->demo("aa","bb"); $p->say(); ?>
toString()
オブジェクト参照を直接出力するときに自動的に呼び出され、文字列表現を素早く取得する最速の方法
<?php //定义一个类“人们” class Person{ protected $name; protected $age; protected $sex; static $country="中国"; //声明一个常量 const RUN="走"; //构造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>"; } function toString(){ return self::$country."<br>{$this->name}<br>{$this->age}<br>{$this->sex}<br>".self::RUN; } } $p=new Person("张三",21,"女"); echo $p; ?>
clone()
クローンオブジェクトはclone()を使用して処理されますOriginal(元のオブジェクト)Copy(コピーされたオブジェクト)
clone() は、オブジェクトのクローン作成時に自動的に呼び出されるメソッドです
オブジェクトが作成されるとすぐに、コンストラクターメソッド constuct に似た初期化アクションが必要です 在clone()方法中的$this关键字代表的是复本的对象,$that代表原本对象 autoload() 注意:其它的魔术方法都是在类中添加起作用,这是唯一一个不在类中添加的方法 只要在页面中使用到一个类,只要用到类名,就会自动将这个类名传给这个参数 test里的文件 one.class.php two.class.php three.class.php 对象串行化(序列化):将一个对象转为二进制串(对象是存储在内存中的,容易释放) 使用时间: 1.将对象长时间存储在数据库或文件中时 2.将对象在多个PHP文件中传输时 serialize(); 参数是一个对象,返回来的就是串行化后的二进制串 unserialize(); 参数就是对象的二进制串,返回来的就是新生成的对象 sleep() 是在序列化时调用的方法 作用:就是可以将一个对象部分串行化 只要这个方法中返回一个数组,数组中有几个成员属性就序列化几个成员属性,如果不加这个方法,则所有成员都被序列化 wakeup() 是在反序列化时调用的方法 也是对象重新诞生的过程 read.php write.php<?php
//定义一个类“人们”
class Person{
var $name;
protected $age;
protected $sex;
static $country="中国";
//声明一个常量
const RUN="走";
//构造方法
function construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
function say(){
echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>";
}
function clone(){
$this->name="王五";
$this->age=18;
$this->sex="男";
}
function destruct(){
echo $this->name."<br>";
}
}
$p=new Person("张三",21,"女");
$p->say();
//这并不能叫做克隆对象,因为在析构时只析构一次
/*$p1=$p;
$p1->name="李四";
$p1->say();*/
$p1= clone $p;
$p1->say();
?>
<?php
function autoload($className){
include "./test/".$className.".class.php";
}
$o=new One;
$o->fun1();
$t=new Two;
$t->fun2();
$h=new Three;
$h->fun3();
?>
<?php
class One{
function fun1(){
echo "The Class One<br>";
}
}
?>
<?php
class Two{
function fun2(){
echo "The Class Two<br>";
}
}
?>
<?php
class Three{
function fun3(){
echo "The Class Three<br>";
}
}
?>
<?php
//定义一个类“人们”
class Person{
var $name;
protected $age;
protected $sex;
static $country="中国";
//声明一个常量
const RUN="走";
//构造方法
function construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
function say(){
echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>";
}
function clone(){
$this->name="王五";
$this->age=18;
$this->sex="男";
}
//是在序列化时调用的方法,可以部分串行化对象
function sleep(){
return array("name","age");
}
//是在反序列化时调用的方法,也是对象重新诞生的过程。可以改变里面的值
function wakeup(){
$this->name="sanzhang";
$this->age=$this->age+1;
}
function destruct(){
}
}
?>
<?php
require "11.php";
$str=file_get_contents("mess.txt");
$p=unserialize($str);
echo $p->say();
?>
<?php
require "11.php";
$p=new Person("张三",18,"男");
$str=serialize($p);
file_put_contents("mess.txt",$str);
?>
以上がPHPオブジェクト指向でよく使われるキーワードとマジックメソッドを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
