让PHP开发者事半功倍的十大技巧小结_php技巧
如果你使用一面大镜子作为冲浪板会发生什么?或许你会在较短的时间内征服海浪,但是你肯定从内心深处明白,这不是冲浪的正确选择。同样的道理也适用于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对象。否则,它意味着该对象已经被创建,我们只需要返回它。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











웹 개발에서는 웹사이트 성능과 응답 속도를 향상시키기 위해 캐싱 기술을 사용해야 하는 경우가 많습니다. Memcache는 모든 데이터 유형을 캐시할 수 있고 높은 동시성 및 고가용성을 지원하는 널리 사용되는 캐싱 기술입니다. 이 기사에서는 PHP 개발에 Memcache를 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. Memcache 설치 Memcache를 사용하려면 먼저 서버에 Memcache 확장 프로그램을 설치해야 합니다. CentOS 운영 체제에서는 다음 명령을 사용할 수 있습니다.

PHP8 개발의 필수품! 이러한 주류 프레임워크를 사용하면 절반의 노력으로 두 배의 결과를 얻을 수 있습니다! 인터넷의 급속한 발전과 함께 강력한 백엔드 개발 언어인 PHP가 널리 사용되고 있습니다. PHP8의 출시는 PHP 개발자에게 많은 흥미로운 새로운 기능과 성능 최적화를 제공했습니다. PHP8을 활용하려면 주류 프레임워크를 사용하여 절반의 노력으로 두 배의 결과로 개발할 수 있습니다. 이 기사에서는 여러 주류 PHP 프레임워크를 소개하고 개발자가 이러한 프레임워크를 더 잘 이해하고 적용하는 데 도움이 되는 특정 코드 예제를 제공합니다. 라라벨 프레임워크

C 언어 학습에 권장되는 필수 소프트웨어로 절반의 노력으로 두 배의 결과를 얻을 수 있습니다! 광범위한 모델링 언어로서 C 언어는 컴퓨터 과학 및 프로그래밍 분야에서 중요한 위치를 차지합니다. C 언어를 배우려는 초보자에게는 자신에게 맞는 개발 환경과 도구를 선택하는 것이 매우 중요합니다. 이 기사에서는 모든 사람에게 몇 가지 필수 C 언어 개발 소프트웨어를 추천하고 C 언어를 더 잘 배우고 연습하는 데 도움이 되는 몇 가지 코드 예제를 제공합니다. VisualStudioCode(VSCode)는 강력한 경량 코드입니다.

PHP를 사용하여 온라인 학습 서비스 플랫폼을 개발하는 방법 인터넷의 급속한 발전으로 인해 온라인 학습 서비스 플랫폼은 점점 더 많은 사람들의 관심과 수요를 끌고 있습니다. 학부모와 학생은 이러한 플랫폼을 통해 적합한 튜터를 쉽게 찾을 수 있으며, 튜터는 자신의 교육 능력과 장점을 더 잘 보여줄 수도 있습니다. 이 기사에서는 PHP를 사용하여 온라인 튜터링 서비스 플랫폼을 개발하는 방법을 소개합니다. 먼저, 플랫폼의 기능적 요구사항을 명확히 해야 합니다. 온라인 튜터링 서비스 플랫폼은 다음과 같은 기본 기능을 갖추어야 합니다. 등록 및 로그인 시스템: 사용자는

PHP 개발에서 버전 제어 및 코드 협업을 구현하는 방법은 무엇입니까? 인터넷과 소프트웨어 산업의 급속한 발전으로 인해 소프트웨어 개발에서 버전 관리와 코드 협업이 점점 더 중요해지고 있습니다. 독립 개발자이든 개발 팀이든 코드 변경을 관리하고 협업하려면 효과적인 버전 제어 시스템이 필요합니다. PHP 개발에는 Git 및 SVN과 같이 일반적으로 사용되는 여러 버전 제어 시스템 중에서 선택할 수 있습니다. 이 기사에서는 PHP 개발에서 버전 제어 및 코드 협업을 위해 이러한 도구를 사용하는 방법을 소개합니다. 첫 번째 단계는 자신에게 맞는 것을 선택하는 것입니다.

식료품 쇼핑 시스템의 회원 포인트 기능을 개발하기 위해 PHP를 사용하는 방법은 무엇입니까? 전자상거래가 증가하면서 식료품 쇼핑을 포함해 생필품을 온라인으로 구매하는 사람들이 점점 더 많아지고 있습니다. 식료품 쇼핑 시스템은 많은 사람들의 첫 번째 선택이 되었으며, 그 중요한 특징 중 하나는 멤버십 포인트 시스템입니다. 멤버십 포인트 시스템은 사용자를 유치하고 충성도를 높이는 동시에 사용자에게 추가적인 쇼핑 경험을 제공할 수 있습니다. 이 기사에서는 PHP를 사용하여 식료품 쇼핑 시스템의 멤버십 포인트 기능을 개발하는 방법에 대해 설명합니다. 먼저, 사용자를 저장하기 위한 멤버십 테이블을 생성해야 합니다.

PHP 캐시 개발을 통해 검색 엔진 순위를 높이는 방법 소개: 오늘날의 디지털 시대에 웹 사이트의 검색 엔진 순위는 웹 사이트의 트래픽과 노출에 매우 중요합니다. 웹 사이트의 순위를 높이기 위해서는 캐싱을 통해 웹 사이트의 로딩 시간을 줄이는 것이 중요한 전략입니다. 이 기사에서는 PHP로 캐싱을 개발하여 검색 엔진 순위를 높이는 방법을 살펴보고 구체적인 코드 예제를 제공합니다. 1. 캐싱의 개념 캐싱은 데이터를 빠르게 검색하고 재사용할 수 있도록 임시 저장소에 저장하는 기술입니다. 그물을 위해

PHP를 사용하여 주문 시스템의 쿠폰 기능을 개발하는 방법은 무엇입니까? 현대사회의 급속한 발전과 함께 사람들의 생활 속도는 점점 더 빨라지고 있으며, 외식을 선택하는 사람들이 점점 더 많아지고 있습니다. 주문시스템의 등장으로 고객의 주문 효율성과 편의성이 크게 향상되었습니다. 쿠폰 기능은 고객 유치를 위한 마케팅 도구로도 다양한 주문 시스템에서 널리 활용되고 있습니다. 그렇다면 주문 시스템의 쿠폰 기능을 개발하기 위해 PHP를 사용하는 방법은 무엇입니까? 1. 데이터베이스 설계 먼저, 쿠폰 관련 데이터를 저장할 데이터베이스를 설계해야 합니다. 두 개의 테이블을 생성하는 것이 좋습니다.
