検索
ホームページバックエンド開発PHPチュートリアルMake code sweet.PHP非一般用法的一些总结(1)

Make code sweet.PHP特殊用法的一些总结(1)
   最近一个项目接近尾声了,工作慢慢轻松了下来,闲暇时就看看一些PHP的框架和一些优秀的开源软件中的代码,一来可以借鉴一下其中的常用代码和函数,二来通过阅读别人的代码了解一些平时不太常见的函数以及特殊用法。这些代码都是针对PHP 5编码的,这样才能充分学习最新的特性。下面是我这段时间阅读代码的特殊用法的一些总结。
    首先我们来说说PHP中的语法糖,在复杂的PHP应用中,一般都趋向于使用MVC框架,或者通用的,或者自己造新的,为了美观易用都少不了撒上一点语法糖。以下内容会有用。
1.魔法方法,让对象更丰富一点
PHP5新增了几个魔法方法,其中一些方法可以让对象执行其不存在的方法和获取不存在的属性。这个特性应该是最家喻户晓的高级用法,如果你不知道,可以查看PHP Manual里Overloading这一节。

__call and __callStatic
在执行对象的不存在的方法时触发,原型如下:

mixed __call ( string $name , array $arguments )mixed __callStatic ( string $name , array $arguments )


__set and __get ,__isset  and __unset
在操作不存在的对象属性时触发,原型如下:
void __set ( string $name , mixed $value )mixed __get ( string $name )bool __isset ( string $name )void __unset ( string $name )


2.让数组面向对象一点

stdClass
有时候我们希望通过对象方式访问元素,那可以用stdClass,它类似于阉割的使用对象方式->访问元素的array,鄙人感觉使用它完全是追求视觉上的感觉和少打两个字符,不过话说回来,这些在编程美学上也是很重要的不是吗?
从Array转stdClass,可以遍历数组自己添加。从stdClass转Array,可以使用函数get_object_vars来获取。
最常见使用它的例子就是mysql_fetch_object和json_decode。

3.让数组‘无处不在’
曾经看帖有人说PHP是面向数组编程,细细想来不无道理,PHP中的数组操作十分强大方便,数组操作主要包括[]操作符,foreach,和count函数,想让你的类也拥有这些功能,当然可以,实现如下接口吧。

ArrayAccess
实现该接口可以让对象支持[]操作,原型如下:
ArrayAccess {/* Methods */abstract public boolean offsetExists ( string $offset )abstract public mixed offsetGet ( string $offset )abstract public void offsetSet ( string $offset , string $value )abstract public void offsetUnset ( string $offset )}


Iterator
实现该接口可以让对象支持foreach,原型如下:
Iterator extends Traversable {/* Methods */abstract public mixed current ( void )abstract public scalar key ( void )abstract public void next ( void )abstract public void rewind ( void )abstract public boolean valid ( void )}

这个接口相对比较复杂,在于foreach操作中接口函数的执行顺序。简单来说就是:rewind/next->valid->current->key,具体可以参看PHP Manual中相关部分,这部分写的很清楚的。

Countable
实现该接口可以让对象支持count函数,原型如下:
Countable {/* Methods */abstract public int count ( void )}


今天就先总结到这里,日后我准备继续写session处理,autoload,错误处理等相关内容的一些总结纲要,以强化自己的记忆,方便日后查询。
我的微博地址:http://weibo.com/jameren,欢迎大家关注,Make code sweet.PHP非一般用法的一些总结(1)  。
顺便做个广告:
引用

[email protected],可在PC及手机上使用,无文件类型及大小限制,传输速度快,文件永不丢失,一起来体验吧!通过下面的邀请链接注册,你和我都将额外获得256MB的酷盘空间! http://t.cn/aNLZje

1 楼 liuzhiqiangruc 2011-07-10  
不错,PHP5的一些特性确实能让PHP更优雅,看起来更面向对象
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?PHPの抽象クラスまたはインターフェイスに対して、いつ特性を使用しますか?Apr 10, 2025 am 09:39 AM

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?依存関係噴射コンテナ(DIC)とは何ですか?また、なぜPHPで使用するのですか?Apr 10, 2025 am 09:38 AM

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。通常のPHPアレイと比較して、SPL SPLFIXEDARRAYとそのパフォーマンス特性を説明してください。Apr 10, 2025 am 09:37 AM

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか?PHPは、ファイルを安全に処理する方法をどのように処理しますか?Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Null Coulescingオペレーター(??)およびNull Coulescing Assignment Operator(?? =)とは何ですか?Apr 10, 2025 am 09:33 AM

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

コンテンツセキュリティポリシー(CSP)ヘッダーとは何ですか?なぜ重要なのですか?コンテンツセキュリティポリシー(CSP)ヘッダーとは何ですか?なぜ重要なのですか?Apr 09, 2025 am 12:10 AM

XSS攻撃を防ぎ、リソースのロードを制限し、ウェブサイトのセキュリティを改善できるため、CSPは重要です。 1.CSPはHTTP応答ヘッダーの一部であり、厳格なポリシーを通じて悪意のある行動を制限します。 2。基本的な使用法は、同じ起源からのロードリソースのみを許可することです。 3.高度な使用法は、特定のドメイン名がスクリプトやスタイルをロードできるようにするなど、より微調整された戦略を設定できます。 4。CSPポリシーをデバッグおよび最適化するには、コンテンツセキュリティポリシーレポートのみのヘッダーを使用します。

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか?HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか?Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

HTTPSとは何ですか、なぜWebアプリケーションにとって重要なのですか?HTTPSとは何ですか、なぜWebアプリケーションにとって重要なのですか?Apr 09, 2025 am 12:08 AM

HTTPSは、HTTPに基づいてセキュリティレイヤーを追加するプロトコルであり、主に暗号化されたデータを介してユーザーのプライバシーとデータセキュリティを保護します。その作業原則には、TLSの握手、証明書の確認、暗号化された通信が含まれます。 HTTPSを実装する場合、証明書管理、パフォーマンスへの影響、および混合コンテンツの問題に注意を払う必要があります。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

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

SublimeText3 Mac版

SublimeText3 Mac版

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

DVWA

DVWA

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