在PHP 5.3中,最重要的一个新特性就是对命名空间引入,在此之前,PHP开发者对于PHP中命名空间的实现,已经变得异常的渴望。当PHP应用开始变得巨大,并且更加复杂的时候,命名空间是解决代码冲突的必要手段。
bitsCN相关文章推荐:PHP命名空间规则解析及高级功能
批评者:混乱的PHP
像C#和Java这些语言,是被设计和遵循严格的语法标准的。PHP是演化的。最早的版本发布于1995年,版本号3,是面向过程的语言。PHP 4包含了最基本的面向对象,而PHP 5提供了合适的标准OOP模型,命名空间在版本PHP 5.3中被加入其中。
PHP批评者声明说这个语言是混乱的。函数名不一致(例如strpos,str_split,substr),对象处理是无用的,还有一些语法同其他语言相比,不是极其怪诞,就是异乎寻常。然而,PHP仍然保持着使用最广泛的服务器端开发语言的头把交易。它的才华主要在下面的长处:
◆初学者可以从简单的面向过程编程开始。
◆他们无须触及OOP技术仍然可以有所见数
10年前为PHP 3编写的代码仍然可以运行在PHP 5.3下。可能需要一些微小的调整,但是很少需要大量重写。PHP代码可能并不总是可爱的、有逻辑的或者优雅的,但是相比其他选择它的开发总是快捷和容易被理解的。
PHP命名空间的实现
不像C#和Java,PHP不得不保持没有名字空间的代码的兼容性。这个已经被实现,你可以选择使用或者不使用命名空间。然而,如果你使用PHP 5.3或更高版本,我推荐使用命名空间,即使你在项目中只使用相同的名字。
使用namespace和use作为命名空间操作符看起来很有逻辑。一些开发者可能不同意,但是在这种情况下它们如何命名其实并不重要。最后,回到反斜杠的问题上。多数批评者人为这是丑陋的,难以阅读,并且在Mac上难以输入。即便如此,我仍然认为它比曾经提议过的两个冒号要好。例如下面的静态方法调用:
<ol class="dp-xml"> <li class="alt"><span><span>// PHP 5.3 beta版静态方法调用 </span></span></li> <li><span>echo ::App::Lib1::MyClass::WhoAmI(); </span></li> <li class="alt"><span>// PHP 5.3正式版静态方法调用 </span></li> <li><span>echo \App\Lib1\MyClass::WhoAmI(); </span></li> </ol>
第二行可以被快速录入,更少的错误可能,容易阅读,并且容易理解。如果你在字符串之外看到反斜杠,你就知道那一定存在命名空间。
当然,如果PHP使用“.”作为公共方法、静态方法和命名空间会更好。这样可以同Java、C#、JavaScript、Python和许多其他语言一致起来。不幸的是PHP的历史和向下兼容让这一切难以实现。
没有语言是完美的,而PHP更加不会是完美语言中的一员。无论如何,命名空间已经被很好的实现,特别是考虑到它可能产生的限制和问题。
文章作者通过分析PHP命名空间的实现,来反击那些PHP反对者的声音,您是否了解PHP的命名空间为什么是这样的呢?PHP的命名空间真的就那么槽糕吗?作为PHP开发者,您是如何认为的呢?
原文作者:Craig Buckler
英文原文地址:http://www.sitepoint.com/blogs/2009/08/13/are-php-namespaces-bad/

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

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

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









