PHP の BigerFly 1. 匿名関数を使用してフォーム データ処理をクールにする
Muyou bigFly についてこれは Mumu の最初の PHP シリーズです biggerFly翻訳は Bi Ge Fei~ Qi です。PHP なのでここにありますキャメルケースネーミング 名前の意味の通り、すごいPHPの使い方を教える連載ですもちろん、昔はすごいと思っていたこともありますが、結果は変わってきましたMumu の想像力は常にそうであるため、最後にこれらのコードについていくつかコメントします。Mumu がおかしくなるのを見たくない場合は、他のシリーズにジャンプしてください。ポータルは最後にあります。最初の号のメイン トピックに入ります。
要件
フォーム データを受信し、フォーマットして処理し、データベースに挿入します。
シミュレーション
フォームで送信されたデータを想定します
$postData = [ ['name' => 'name1', 'createtime' => '2000-01-01', 'email' => 'email1@example.com' ], ['name' => 'name2', 'createtime' => '2000-02-01', 'email' => 'email2@example.com' ], ['name' => 'name3', 'createtime' => '2000-03-01', 'email' => 'email3@example.com' ], ['name' => 'name4', 'createtime' => '2000-04-01', 'email' => 'email4@example.com' ],];
通常の練習
function format( $data ) { $format = $data; $format['createtime'] = strtotime( $data['createtime'] ); return $format;}
もちろん、上記は参照に置き換えることもできます 参照はメモリのオーバーヘッドを減らすことができます~
No bigFly
(スクリプトを読み込んでいます...) Mumu: 今回は必要なフォーマット メソッドをあまり書きたくないのです。フォームを送信するためのフォーマットを書いて、次回また別の場所にフォーマットが必要になるたびに定義するのが面倒ですよね?検証のための validate メソッドやその他の abc メソッドがある場合は... ああ、勘弁してください: 匿名関数を試してみてはどうでしょうか。むむ:え?匿名関数とは一体何でしょうか? biggerFly: 匿名関数ポータルはここにあります。行きましょう Mumu: とてもめまいがするので、どうすればよいか教えてください...biggerFly:
class A { public $data = NULL; public $format = NULL; /** * 执行 */ public function run() { foreach ( $this->data as $key => &$data ) { if ( is_callable( $this->format ) ) { $method = $this->format;//必须赋值给一个变量,不然会报错:format方法不存在 $method( $data ); } } } /** * 设置data数组 * @param array $data */ public function setData( $data ) { $this->data = $data; return $this; } /** * 获取data数组 * @return array */ public function getData() { return $this->data; }}
Mumu: それでどうですか。 ? ? bigFly の使い方: シミュレーション を例にします
$a = new A();$a->setData( $postData );$a->format = function( &$data ) { $data['createtime'] = strtotime( $data['createtime'] );};$a->run();var_dump( $a->getData() );
の実行結果 はここでは 2 次元配列 $ の createtime の日付形式を省略しています。 postData はタイムスタンプに変換されます。 bigFly: このようにして、クラス A でよく使用されるいくつかのメソッドを定義する限り、いくつかのよく使用されるルールなどを繰り返し定義することなく関数を作成できます。 🎜> は呼び出し可能な転送ドアです。より厳密な場合は、関数
- であることを確認する is_array 判定を追加できます。これにより、format や validate などの一般的に使用されるいくつかのメソッドを直接埋め込むことができます。 class A
- 同時に、フォーム データをフォーマットする必要がある各スクリプトが参照するクラスの数は非常に少なくなります。たとえば、文字列フォーマットが電子メール アドレスであるかどうかを検出したい場合は、メソッドを呼び出す必要がある場合があります。各フォーム処理場所の文字列クラス。クラス A では、A が 1 つだけ必要で、そのような参照をすべて A に書き込むだけです。
- フォーム データを処理するこれらの関数は本質的に 1 回限りです (これらの形式メソッドは引き続き適用できます)。 ? 他のフォームデータ処理?) なので、匿名関数を使用する方がその意味に沿っています
- それは派手だと思いませんか?
- その他
この処理により、以下のようなコードも書けるかもしれませんが、ここでは実装は書きません
- という形式で簡単に完成させることができます。匿名関数はコールバック関数とも呼ばれます。関数 ```ポータル前の PHP-Array 私の小説霊隠万年
$a->validate = function( &$data ) {$data['email'] = array( 'email', 'unique' );$data['name'] = array( 'required', 'unique' );$data['createtime'] = array( 'datetime', function($time) { if ( strtotime( $time ) >= time() ) { return false; } else { return true; } } );};
ログイン後にコピー -

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

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

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

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
