ホームページ バックエンド開発 PHPチュートリアル [PHP 学習 100 日おめでとう] 4 日目: PHP マジック関数を完了する_PHP チュートリアル

[PHP 学習 100 日おめでとう] 4 日目: PHP マジック関数を完了する_PHP チュートリアル

Jul 14, 2016 am 10:09 AM
php 関数 開ける 強力な 私たち 時間 魔法

この号のモットー:

私たちの才能が十分に強くない場合、シングルスレッドの技術マスターになるためにエネルギーの 500% を費やすのではなく、より少ないエネルギーを費やして賢いマルチスレッド プログラマーになる方が良いでしょう。
この問題のたわごと:
湖南衛星テレビ「私は歌手です」の最初のシーズンが終了し、歌手の王が誕生しました。おそらく、多くの人がキング・オブ・シンガーについてさまざまな考えを持っているかもしれませんが、Yu Quanが確かにキング・オブ・シンガーとして「公式に」発表され、「誰もが認めている」ことは否定できません。私の個人的な分析は次のとおりです。
実際、すべての歌手は非常に強く、独自の特徴を持っています。歌手の王などというものは実際には存在しません。例えば、神から与えられた林志軒、ソプラノの黄馬、全身を揺さぶる周暁王、非常に繊細な楊宗偉など、それぞれの特徴を持った歌手がいます。しかし、個人的に最も賢い歌手はユー・クアンだけだと思います。音色の点では林志軒ほどではないかもしれませんし、タッチの点ではヤン・ゾンウェイほどではないかもしれません。高音の点では彼はそうかもしれません。母親ほどの高みにはなれないし、ロック音楽の観点から言えば頭を剃らなければならない。そのため、ユー・クアンの戦略は観客に自分自身を溶け込ませることであり、観客を自分たちの歌に強制するものではない。ついに彼は、勝負に勝つための最強の武器を思いついた。
ここで、私が処理した神レベルの分析も書きます。 Yu Quan に投票する場合、「Yu」に 1 票、「Quan」に 1 票、Deng Chao に 1 票、Sun Li に 1 票、そして、Bai Baihe への支持に 1 票、3G Tianyi への 1 票、そして自宅で Liby 洗濯洗剤を使用している人への 1 票です。したがって、玉泉氏が投票で1位にならなかったのは許せない。さらに、Liby と Tianyi はこのプログラムのスポンサーでもあります。
プログラマも同様で、いきなりデビューしたらJavaの達人や先輩が多すぎて、裸になっても追いつくのは大変だった、結局、彼らの開発経験はどこにあるのか? C#、このバージョンと機能のアップグレードは速すぎるし、ただ丸裸で学習してもすべてをマスターして偉人になるのは難しいです。もう一度 Python や Ruby を見てください。よく学んだ人は間違いなく偉いです。少数派で、よく学ばない人は基本的にクソなので、淘宝が好きな人に一票、mysqlに一票、Apacheに一票、好きな人に一票があるので、phpを勉強したほうがいいでしょう。 wordpress、dz forum が好きな人に 1 票、centos が好きな人に 1 票、これ以上は言いませんが、Yu Quan は歌の王です。プログラマーの王になる方法を考えてみませんか。
テキスト: 魔法の関数
なぜマジック関数と呼ばれるのですか? 場所によってはマジック関数と呼ばれることもあります。理由は簡単です。これほど便利かつ簡単に、最初から最後まで隅から隅まで学習できる言語は他にありません。読み終えた後は、PHP を完全に克服したように感じるでしょう。 Javaではこの感覚を見つけるのが難しいですが、C#ではどうですか?ああ、それについて話す必要はありません。
(1)、__construct コンストラクター
コンストラクター関数は、それが最初に展開される関数であることを意味します。展開するかどうかに関係なく、自動的に展開されます。
[php]
クラステスト
関数__construct()
自エコー「初めて爆発しました」
}
関数 mydo()
ハンドエコー「手動で爆発させる」
}
}
$newObj = 新しいテスト();
$newObj->mydo();
操作の結果、最初は爆発し(望むか望まないかは別として)、その後2度目も爆発します。
ここでの知識ポイントは次のとおりです: パラメーターを渡すのも非常に簡単で、__construct($arg1,$arg2);
することができます。
同様に、func_get_args 関数を使用して、未知の数のパラメーターを取得することもできます。たとえば
[php]
クラステスト
関数__construct()
$getargs=func_get_args();
exit("パラメータが 2 つある必要があります");
}
関数 mydo()
through through off echo 「手動で一度爆発しました」
;
}
}
$newObj = new test("aaa"); //コンストラクター内の $getargs[0] の値は aaa です
$newObj->mydo();
exit を使用すると、mydo メソッドは実行されないことに注意してください。つまり、手動で爆発させることは不可能になります。 C#のresponse.endに似ています。
このコンストラクターは主にクラスの継承で使用され、ページ出力コンテンツで直接使用してパラメーターの数に基づいてさまざまなコンテンツをロードすることもできます。
(2)、__destruct() デストラクター
デストラクターの原理を説明すると、オブジェクトが削除されるか、オブジェクトの操作が終了すると、このメソッドが自動的に呼び出され、リソースの解放などの操作を実行できます。
実際、php を使用する場合は、この関数にまったく注意を払う必要はありません。 Zend はすべてのリソースの解放を担当しており、PHP はクラス内で大規模なデータのスーパー ループを実行するのには適していません。そうしないと、本当に爆発してしまいます。一般に、実際のプロジェクトでは、ログの記録などの小さなことは継承によって行われます。クラス内で処理するデータが数百万ある場合、それは大きなプロジェクトを受け取り、それを公開しようとしているか、夢を見ているかのどちらかです。
(3)、__autoload 自動読み込み
この機能は 1 か所でのみ役立ちます。関数ファイルを自動でロードする機能です。
[php]
クラスフルーツ
関数 __construct($user の選択)
$ apple object = new apple (); // ここで、啃 Apple .php に必要な関数が自動的にロードされます
その他
= $ Durian = new durian () // ここでは余分な PHP ファイルはロードされません
;
}
}
クラスドリアン
{
//臭すぎるけど、食べるのは好きです
}
クラスアップル
{
関数 __autoload()
(Require (「リンゴの機能には .php が必要です」);
}
}
$newObj = 新しい果物(1)
;
上記の例は、理解しやすいように中国語で書かれているので、直接コピーして実行しないでください。
(4)、__電話
存在しないクラスの関数を呼び出す場合は、メソッドを使用する必要があります。__call が失敗した場合は、親クラスのメソッドが呼び出されます。
個人的に、この関数は PHP で最も強力な関数だと思います。これから、たとえば次のような非常に明るいコードを書くことができます:
[php]
クラスデータ
{
関数 __call($name,$arguments)
{
//$name はメソッド名を表します $arguments はパラメータを表します
if($name=="getSqlServer")
// sqlserver に関連する SQL ステートメントを実行します
} }
その他
//mysql に関連する SQL ステートメントを実行します
}
}
}
$newObj = 新しいデータ();
$newObj->getSqlServer("select top 10 * from table1"); //getSqlserver このメソッドは事前定義する必要はありません
$newObj->getMysql("select * from table1 limit 0,10");//mysql には上位 n 構文がないことに注意してください
もちろん、上記は 1 つの例から推論できます。特に、仮想エンティティまたは仮想クラスを構築する場合に、高度に構成可能なコード記述を実現できます。
(五)、__get、__set
プロパティが未定義の場合、取得または設定時に自動的に呼び出されます
[php]
クラスデータ
{
function __get($name) //$name は属性名を表します
{
If($name=="H7N9") //変数が H7N9 で定義されていない場合は __get が呼び出されます 定義されている場合は入りません
️ -- 「鳥インフルエンザ」を返します。
その他
アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト
}
}
$newObj = 新しいデータ();
エコー $newObj->H7N9;
エコー $newObj->H100N30;
この方法を使用しても、明るいコードを書くことができます
(6),__clone()
オブジェクトのクローン作成時に実行される関数
[php]
クラスデータ
{
var $myname="シェニーシン";
関数__clone()
{
$this->myname="偽シェニーシン";
}
}
$newObj = 新しいデータ();
エコー $newObj->私の名前
$obj2=$newObj をクローンします。
エコー $obj2->私の名前
この関数は実際のプロジェクトにもあります。たとえば、ニュース Web サイトを構築している場合、ユーザーは同じニュースをコピーして収集することができます。 ) 特定の識別値を変更する関数。
など
[php]
クラスニュース
{
var $newsid=1
関数__clone()
{
//データベース内の ID 1 のニュースを実行し、引用符で囲むか、コレクション フィールドに +1 を追加します
}
}
$newObj = 新しいニュース
;
$news2=clone $newObj;//ついに外部サイトユーザーが当サイトのニュースを収集しに来てくれました、とても嬉しいです
(7),__toString()
使用方法は例を見れば簡単です
[php]
クラスニュース
{
var $newstitle="ケリー米国務長官、中国訪問のため北京に到着";
Function __toString() //この関数を追加しないとオブジェクトを文字列として出力できません
{
「これはニュース オブジェクトです。タイトルしか提供できません」を返します。
}
}
$newObj = 新しいニュース
;
echo $newObj //うーん。 。間違えて、このアイテムが文字列ではないことを忘れていましたが、それでも爆発する可能性があります
(8)、__寝て、__起きて
この関数は、クラスがシリアル化または逆シリアル化されるときにのみ自動的に呼び出されます。見てください
[php]
クラスニュース
{
var $user1="卞工";
var $user2="ブタのガンリー";
var $user3="先輩";
関数__sleep()
{
エコー「先輩は機密情報なので連載は許可しません」
}
}
$newObj = 新しいニュース
;
$obj=シリアル化($newObj);
var_dump($obj);
上記は php の魔法の機能です。実際、これは php の最も優れた部分の 1 つです。
後の実際のプロジェクトで非常に男らしくセクシーなプログラムを作成するには、まずこれらの魔法の関数を理解する必要があります。

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

tru​​ehttp://www.bkjia.com/PHPjc/477562.html技術記事この号のモットー: 才能が十分でない場合は、シングルスレッドの技術マスターになるためにエネルギーの 500% を費やすよりも、賢いマルチスレッド プログラマーになるためにエネルギーをあまり費やさないほうが良いです。 この問題のナンセンス:...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles