ホームページ >バックエンド開発 >PHPチュートリアル >マジックメソッド __call() の賢いオーバーロード

マジックメソッド __call() の賢いオーバーロード

WBOY
WBOYオリジナル
2016-08-08 09:31:24854ブラウズ

私は半年働いていますが、この半年で大学の4年間よりも多くのことを学べたと感じています。主な理由は、心が落ち着いて、自分の目標が明確になったことです。一日中ゲームに夢中。実は大学生の頃、ゲームをすると普段の勉強や仕事に影響が出ることに気づきましたが、それでも自分を抑えることができず、昼も夜も頻繁にゲームをしていました(もともと色気のある性格でした)。私はまだ家でゲームをしていました。これが、大学の 4 年間、ゲームしかなく、右手も左手も持っておらず、ガールフレンドもいなかった理由の 1 つです。)仕事をしている今、私は毎日タスクを抱えています。隣の優秀な人々がアヒルのようにプロジェクトに取り組んでいるのを見ると、彼らに追いつきたいと思うので、自分自身に特別な努力を与えます。毎日新しい知識を学ぶために取り組んでいます。半年が経ち、今まで慣れていなかった Linux も使えるようになりました。自分が現在その仕事に能力があり (初心者、上級初心者、有能、熟達に分けられる場合)、アクティビティ、インターフェイス、バックエンドを開発し、合理的な範囲でシステム フレームワークを最適化および改善していること。製品の運用によって生じたニーズに迅速に対応できます。もちろん、私が本当に感じていることは 1 つあります。 プログラマーは、ほとんどの場合、自分のアイデアが最善であると常に考えています。 もちろん、これは自信であると考えられますが、議論中の積極性が必ずしも良いことではない場合もあるので、他の人の意見に耳を傾けることで、自分の欠点を発見できるだけでなく、良い点を構築することもできます。 "友情"。この半年間、私の気持ちをたくさんお話してきましたが、最後までお付き合いいただき、読んでいただきありがとうございました^_^。

それでは、実際の質問に入り、PHP の魔法の方法を上手に使用する方法について話しましょう。これはほとんどのプロジェクトで使用されると思います。

まず最初に、この小さなトリックが私のプロジェクトで非常にうまく活用されており、私たちのプロジェクトに大きな利便性をもたらしていることを説明したいと思います。ここで詳細を説明しますので、読み続けてください。

プロジェクトでは、ゲームのロボットのオープン時間帯、支払い方法の有効有無、モール内のタイトル表示の設定など、設定できる設定情報が大量にあるはずです。これらの設定情報の特徴は、特定のルールがなく、実際の状況に応じていつでも製品の動作を変更できることです。この情報をタイプごとに作成することは絶対に不可能です。考えてみれば、1 つのテーブルに情報が保存される可能性があるため、別の方法を考える必要があります。この情報にルールはありませんが、情報が多すぎないことが特徴の 1 つです。 、一般に、配列は設定する必要があるすべての情報を保存できるため、json 文字が使用されます。文字列ストレージ情報を使用する必要がある場合は、json_decode を取り出して直接使用することができます。 PHP の魔法のメソッドを賢く使ってそれを実現する方法を見てみましょう。

ここでは、まず PHP の魔法のメソッドである __call() を理解する必要があります。この関数については、次のように説明されている PHP の公式ドキュメントを確認してください。

リーリー

これは、アクセスできないメソッド (権限なし、存在しない) がオブジェクト内で呼び出されたときにこの関数がトリガーされることを意味します。関数のパラメーター $name は呼び出される関数の名前であり、$arguments は呼び出される関数のパラメーター配列です。呼び出された関数。この例を見てください:

リーリー

この関数は次の結果を出力します

リーリー

このように、関数を直接定義することはできませんが、この機能を使用して何かを行うことができます。コードの実装のアイデアを見てみましょう。主に、データベース接続など、私が仮定したアイデアもありますが、ここでは焦点を当てません。

リーリー

この方法では、1 つのテーブルを通じて複数の情報を保存でき、呼び出しの際にも Config::$keys 配列内の情報を展開するだけで済みます。これは単に標準化と明確化のためです。このテーブルに格納されます。

使用時はこのように収納したり取り出したりできます

リーリー

ここでもう 1 つ注意すべき点は、これらの構成情報は通常、Redis がハングした後にデータベースから回復することを防ぐためだけに、Redis にキャッシュされ、データベースに配置されるということです。これは、一般に、頻繁に読み取られる情報を指します。データベースをキャッシュに直接配置します。

この記事の著作権は著者ifforever(luluyrt@163.com)に帰属します。記事を転載した後は、著者と原文リンクをわかりやすい位置に記載する必要があります。記事ページに記載されていない場合は、法的責任を追及する権利が留保されます。

posted @ 2015-01-10 12:23
ランニングマン 読む (...) コメント (...) コレクションを編集

コメントを更新 ページを更新 トップに戻る Blog Park ホームページ Bowen ニュース フラッシュ プログラマー募集ナレッジ ベース

公告

Copyright ©2015 奔跑的Man

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。