PHP程序员不应该忽略的3点


Posted in PHP onOctober 09, 2015

最近发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在。Perl当年如何在商界出名?其强大的正则表达式。而PHP呢?他是一门从Unix下发展起来的语言,当然也就继承了Perl的很多特点,同时C的优点都有。快速、简洁、明了,尤其是C程序员,PHP是至爱。这里,我想来写一篇PHP的变量、数组应用技巧和PHP的正则表达式、PHP的模板应用。
1、变量、数组的应用技巧
(1)很多人用得不多的数组函数。foreach、list、each。分别举几个例子,应该就能知道了。例:

$data = array('a' => 'data1', 'b' => 'data2', 'c' => 'data3'); 
while(list($subscript, $value) = each($data)) 
{ 
echo "$subscript => $value :: "; 
echo "$subscript => $valuen
"; 
} 
reset($data); 
foreach($data as $subscript => $value) 
{ 
echo "$subscript => $value :: "; 
echo "$subscript => $valuen
"; 
}

(2)函数的变量、变量的变量、变量的“指针”:看下例:

//变量的变量 
$var = "this is a var"; 
$varname = "var"; 
echo $$varname; 
//函数的变量 
function fun1($str) { 
echo $str; 
} 
$funname = "fun1"; 
$funname("This is a function !"); 
?>

变量的“指针”。这个指针加上了双引号,表明他不是真正的指针。看看下例:

function($a) { 
$a ++; 
} 
$c = 0; 
function($c); 
echo $c; //$c仍为0 
function(&$a) { 
$a ++; 
} 
$c = 0; 
echo $c; //$c为1 
?>

之所以称其为“指针”,就是因为他有了和C语言中指针相同的功能。但这又不是真正的指针,只能够是这样的去理解。
2、正则表达式
正则表达式是一个非常大的题目,Perl的正则表达式的强大是闻了名的。而PHP也不弱,他继承了Perl的正则表达式法则,还有自己的一套法则。这里只说PHP自己的正则表达式。
正则表达式是最基本的元素。简单地说就是一套规则,用于去判定其它的元素是不是符合自身的规则,或者说是不是有相同的特征描述。
正则表达式的开始符:^,结尾符$,这两个符号间的是匹配的元素。如检查一个电话号码是不是打往北京的号,用正则表达式表示就是“^010$”。只要前3位区号是010,就是北京的号,后面的电话号码就不用管了。然后,用正则表达式匹配函数ereg来判断,例:

$pattern = "^010$"; 
$phone = "01080718828"; 
if(ereg($pattern, $phone)) 
echo "打往北京的号"; 
else 
echo "不是打往北京的号"; 
?>

这就是正则表达式。北京的电话都是8位数字的,那我要知道这个号码是不是正确了?假如他按了9位号呢?如果判断正误?这就要用到正则表达式的字符簇。那么上例的正则表达式就要这样写:^010[0-9]{8}$,就能同时判断号码是不是符合规则。正则表达式有很多的应用,像LBB、VBB论坛在发贴时的所谓VBB代码LBB代码的解析,都是用正则表达式完成的。
3、模板
知道了正则表达式的功能,那么就可以知道模板了。什么是模板?举个例子吧?一般写网页用到了后台程序的时候,都是在网页里面插入程序代码。如PHP。这就是HTML和PHP的混写。这样的优点是读取速度快,缺点是如果大家分工合作做网站,那么非程序员就不会改网了。
而用模板,则可以达到分工的最合理化。美工只做页面,程序只写后台,然后再合起来。优秀的Jsp提供了自定义标签的功能很好地完成了模板功能。而主流的PHP如何做到呢?就是利用正则表达式来做到的。可以去网上下载一个PHPLIB,里面的PHP目录下有一个template.inc的源代码文件,那就是用PHP实现模板套用的类。

以上都是一些经验之谈,很实用,目的就是让大家更好的掌握php编程这门语言,希望大家能够有所收获。

PHP 相关文章推荐
php中文件上传的安全问题
Oct 09 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
header跳转和include包含问题详解
Sep 08 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
PHP使用array_merge重新排列数组下标的方法
Jul 22 PHP
关于PHP开发的9条建议
Jul 27 PHP
各种快递查询--Api接口
Apr 26 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 #PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 #PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 #PHP
PHP抽奖算法程序代码分享
Oct 08 #PHP
php视频拍照上传头像功能实现代码分享
Oct 08 #PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 #PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 #PHP
You might like
ThinkPHP模板输出display用法分析
2014/11/26 PHP
php 基础函数
2017/02/10 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
python实现查找两个字符串中相同字符并输出的方法
2015/07/11 Python
Python 序列的方法总结
2016/10/18 Python
python os.path模块常用方法实例详解
2018/09/16 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
财务经理的岗位职责
2013/12/17 职场文书
外贸业务员工作职责
2014/01/06 职场文书
实习单位接收函
2014/01/11 职场文书
暑期研修感言
2014/02/17 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android