ホームページ バックエンド開発 PHPチュートリアル 让PHP开发者事半功倍的十大技巧小结_php技巧

让PHP开发者事半功倍的十大技巧小结_php技巧

May 17, 2016 am 09:26 AM
PHP開発 半分の労力で2倍の結果を得る

如果你使用一面大镜子作为冲浪板会发生什么?或许你会在较短的时间内征服海浪,但是你肯定从内心深处明白,这不是冲浪的正确选择。同样的道理也适用于PHP编程,尽管这样的类比听起来有一些古怪。我们经常听到有人试图用一个周末多点的时间来学会PHP,但是请恕我直言,这是学习这门编程语言的一种非常糟糕的方式。

为何说学习PHP的过程有别于任何其它语言?
就其本质而言,如果你掌握了以PHP语言“做事”的方式,那么在使用它时就会得心应手,因此值得你去投入精力去了解这些方式。在PHP中,单纯按照自己思路去解决问题往往会是一种错误的办法。这并不是因为你是一个糟糕的程序员,而是因为如果你想写出好的可维护性强的代码,有些标准技巧是你必须要使用的。下面让我们一起看一下你需要知道的10大技巧。

1、如何正确的创建一个网站的Index页面
创建每一个网站时,建立网站的index页面是首要做的事情之一。如果你是一个PHP新手,在编写index页面时典型的做法是只对index页面所需的内容进行编程,其它链接创建另一个页面。不过,如果想学习一种更高效的方式来实现PHP编程,可以采用“index.php?page=home”模式,许多网站都在采用这种模式。

2、使用Request Global Array抓取数据
实际上我们没有任何理由使用$_GET和$_POST数组来抓取数值。$_REQUEST这个全局数组能够让你获取一个get或form请求。因此,多数情况下解析数据的更高效代码大体如下:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 0;

3、利用var_dump进行PHP代码调试
如果你在寻找php调试技术,我必须说var_dump应该是你要找的目标。在显示php信息方面这个命令可以满足你的所有需要。而调试代码的多数情况与得到PHP中的数值有关。

4、PHP处理代码逻辑,Smarty处理展现层
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

5、的确需要使用全局数值时,创建一个Config文件
动辄创建全局数值是一种糟糕的做法,不过有时候实际情况的确又需要这么做。对于数据库表或数据库连接信息使用全局数值是一个不错的想法,但不要在你的PHP代码中频繁使用全局数值。另外,更好的一种做法是把你的全局变量存放在一个config.php文件中。

6、如果未定义,禁止访问!
如果你正确的创建了页面,那么任何其他人没有理由访问index.php或home.php之外的index.php页面。一旦index.php被访问后,你可以通过获得变量的方式来打开需要的页面。你的index页面应该包含类似的以下代码:
define('yourPage',1);
然后,其它页面应该包含:
if (!defined('yourPage')) die('Access Denied');
这么做的目的是防止直接访问你的其它php页面。这样,任何试图不通过index.php访问其它网页的人,将得到“访问被拒绝”的消息。

7、创建一个数据库类
如果你正在进行数据库编程(在PHP中非常常见的任务),一个不错的想法是创建一个数据库类来处理任何数据库管理功能。示例代码如下:

复制代码 代码如下:

public function dbExec($query)
{
$result = $this->db->exec($query);
if (PEAR::isError($result))
errorRedirect($result->getMessage(), true);
else
return $result;
}

这个函数仅接收一个查询语句并对其执行。它还处理可能出现的任何错误。你还可以在这儿包含审核代码,不过我更喜欢使用一个类似的审核函数:
复制代码 代码如下:

// checks if arguments given are integer values not less than 0 - has multiple arguments
function sanitizeInput()
{
$numargs = func_num_args();
$arg_list = func_get_args();
for ($i = 0; $i if (!is_numeric($arg_list[$i]) || $arg_list[$i] errorRedirect("Unexpected variable value", true);
}
}

8、一个php文件处理输入,一个class.php文件处理具体功能
不让代码变得混乱的一个重要方法是:获取用户输入后,将其重定向到其它函数来进行处理。原理非常简单,php文件获得我们需要的任何输入,然后将其执行重定向到类文件中的一个函数。举例来讲,假设有一个类似“index.php?page=profile&action=display”的URL。由profile.php来检索该网址并得到操作是“display”。然后使用一个简单的switch函数,我们来执行真正的显示函数:
复制代码 代码如下:

require_once PROJECTROOT.'libs/messages.class.php';
$message = new Message();
switch ($action)
{
case 'display':
$message->display();
break;
...

如上所示,我使用了一个消息类,然后开始进行switch检查。$message只是被类中的调用函数使用的一个对象。

9、了解你的SQL语句,并总是对其审查(Sanitize)
正如我以前所提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql。学会关联表和更多高级技术。下面我将展示一个使用MySQL的函数示例,并使用本文第7条函数进行审查。
复制代码 代码如下:

private function getSentMessages($id)
{
$this->util->sanitizeInput($id);
$pm_table = $GLOBALS['config']['privateMsg'];
$users = $GLOBALS['config']['users'];
$sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR
WHERE id_sender = '$id' AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE
ORDER BY date_sent DESC";
$result = $this->dbQueryAll($sql);
return $result;
}

首先,我们对用户输入进行检查(通过一个GET变量传递消息id),然后我们执行我们的SQL命令。注意这儿SQL的用法。你需要了解如何使用别名和关联表。

10、当你只需要一个对象时,使用单例模式
在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它。一个很好的例子就是smarty变量,一旦被初始化后就可以在任何地方使用。这种情形的一个很好实现方案就是单例模式。示例代码如下:
复制代码 代码如下:

function smartyObject()
{
if ($GLOBALS['config']['SmartyObj'] == 0)
{
$smarty = new SmartyGame();
$GLOBALS['config']['SmartyObj'] = $smarty;
}
else
$smarty = $GLOBALS['config']['SmartyObj'];
return $smarty;
}

注意,我们拥有一个全局smarty变量(该示例中它在config.php中被初始化),如果它的值为0,我们将创建一个新smarty对象。否则,它意味着该对象已经被创建,我们只需要返回它。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

PHP開発でMemcacheを使用するにはどうすればよいですか? PHP開発でMemcacheを使用するにはどうすればよいですか? Nov 07, 2023 pm 12:49 PM

Web 開発では、Web サイトのパフォーマンスと応答速度を向上させるためにキャッシュ テクノロジを使用する必要があることがよくあります。 Memcache は、あらゆる種類のデータをキャッシュでき、高い同時実行性と高可用性をサポートする一般的なキャッシュ テクノロジです。この記事では、PHP 開発で Memcache を使用する方法を紹介し、具体的なコード例を示します。 1. Memcache のインストール Memcache を使用するには、まずサーバーに Memcache 拡張機能をインストールする必要があります。 CentOS オペレーティング システムでは、次のコマンドを使用できます。

必須の PHP8 開発ツール!これらの人気のあるフレームワークを使用すると、半分の労力で 2 倍の結果を得ることができます。 必須の PHP8 開発ツール!これらの人気のあるフレームワークを使用すると、半分の労力で 2 倍の結果を得ることができます。 Jan 05, 2024 pm 03:36 PM

PHP8開発には必須!これらの主流のフレームワークを使用すると、半分の労力で 2 倍の結果を得ることができます。インターネットの急速な発展に伴い、PHP は強力なバックエンド開発言語として広く使用されています。 PHP8 のリリースにより、多くのエキサイティングな新機能とパフォーマンスの最適化が PHP 開発者に提供されました。 PHP8 を活用するには、主流のフレームワークを使用すると、半分の労力で 2 倍の結果をもたらす開発が可能になります。この記事では、いくつかの主流の PHP フレームワークを紹介し、開発者がこれらのフレームワークをよりよく理解して適用できるように、具体的なコード例を示します。 Laravelフレームワーク

半分の労力で2倍の成果が得られる、C言語学習に必須のおすすめソフト! 半分の労力で2倍の成果が得られる、C言語学習に必須のおすすめソフト! Feb 20, 2024 pm 12:03 PM

半分の労力で2倍の成果が得られる、C言語学習に必須のおすすめソフト! C 言語は、広範なモデリング言語として、コンピューター サイエンスとプログラミングの分野で重要な位置を占めています。 C言語を学習したい初心者にとって、自分に合った開発環境やツールを選ぶことは非常に重要です。この記事では、いくつかの重要な C 言語開発ソフトウェアを皆さんにお勧めし、C 言語の学習と練習に役立つコード例をいくつか紹介します。 VisualStudioCode (VSCode) は強力な軽量コードです

PHPを使用してオンライン家庭教師サービスプラットフォームを開発する方法 PHPを使用してオンライン家庭教師サービスプラットフォームを開発する方法 Oct 28, 2023 am 09:01 AM

PHP を使用してオンライン個別指導サービス プラットフォームを開発する方法 インターネットの急速な発展に伴い、オンライン個別指導サービス プラットフォームはますます多くの人々の注目と需要を集めています。このようなプラットフォームを通じて、保護者や生徒は適切な講師を簡単に見つけることができ、講師も自分の指導能力や利点をより適切に発揮することができます。この記事では、PHPを使用してオンライン家庭教師サービスプラットフォームを開発する方法を紹介します。まず、プラットフォームの機能要件を明確にする必要があります。オンライン家庭教師サービスプラットフォームには、以下の基本機能が必要です。 登録およびログインシステム:ユーザーは次のことができます。

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? Nov 02, 2023 pm 01:35 PM

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか?インターネットとソフトウェア産業の急速な発展に伴い、ソフトウェア開発におけるバージョン管理とコードのコラボレーションがますます重要になってきています。独立した開発者であっても、チーム開発者であっても、コードの変更を管理し、共同作業を行うためには効果的なバージョン管理システムが必要です。 PHP 開発では、Git や SVN など、一般的に使用されるバージョン管理システムがいくつかあります。この記事では、PHP 開発におけるバージョン管理とコード共同作業にこれらのツールを使用する方法を紹介します。最初のステップは自分に合ったものを選ぶことです

PHPキャッシュ開発で検索エンジンのランキングを向上させる方法 PHPキャッシュ開発で検索エンジンのランキングを向上させる方法 Nov 07, 2023 pm 12:56 PM

PHP キャッシュ開発を通じて検索エンジンのランキングを向上させる方法 はじめに: 今日のデジタル時代では、Web サイトの検索エンジンのランキングは、Web サイトのトラフィックと露出にとって非常に重要です。 Web サイトのランキングを向上させるためには、キャッシュによって Web サイトの読み込み時間を短縮することが重要な戦略となります。この記事では、PHP でキャッシュを開発して検索エンジンのランキングを向上させる方法を検討し、具体的なコード例を示します。 1. キャッシュの概念 キャッシュは、データを一時ストレージに保存して、すぐに取得して再利用できるようにするテクノロジーです。ネット用

PHP を使用して食料品ショッピング システムの会員ポイント機能を開発するにはどうすればよいですか? PHP を使用して食料品ショッピング システムの会員ポイント機能を開発するにはどうすればよいですか? Nov 01, 2023 am 10:30 AM

PHP を使用して食料品ショッピング システムの会員ポイント機能を開発するにはどうすればよいですか?電子商取引の台頭により、食料品の買い物など日用品をオンラインで購入する人が増えています。食料品ショッピング システムは多くの人にとって最初の選択肢となっており、その重要な機能の 1 つはメンバーシップ ポイント システムです。メンバーシップ ポイント システムは、ユーザーを惹きつけてロイヤルティを高めると同時に、ユーザーに追加のショッピング体験を提供します。この記事では、PHP を使用して食料品ショッピング システムの会員ポイント機能を開発する方法について説明します。まず、ユーザーを保存するためのメンバーシップ テーブルを作成する必要があります。

PHPを使って発注システムのクーポン機能を開発するにはどうすればよいですか? PHPを使って発注システムのクーポン機能を開発するにはどうすればよいですか? Nov 01, 2023 pm 04:41 PM

PHPを使って発注システムのクーポン機能を開発するにはどうすればよいですか?現代社会の急速な発展に伴い、人々の生活ペースはますます速くなり、外食を選択する人が増えています。発注システムの登場により、顧客の発注業務の効率性と利便性が大幅に向上しました。クーポン機能は、集客のためのマーケティングツールとして、さまざまな注文システムでも広く活用されています。では、PHP を使用して注文システムのクーポン機能を開発するにはどうすればよいでしょうか? 1. データベースの設計 まず、クーポン関連のデータを格納するデータベースを設計する必要があります。 2 つのテーブルを作成することをお勧めします。

See all articles