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 相关文章推荐
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
php PDO属性设置与操作方法分析
Dec 27 PHP
PHP微商城开源代码实例
Mar 27 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
PHP7 新增功能
Mar 09 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
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
jquery中的事件处理详细介绍
2013/06/24 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
详解redis在nodejs中的应用
2018/05/02 NodeJs
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
python抓取京东商城手机列表url实例代码
2013/12/18 Python
分析python服务器拒绝服务攻击代码
2014/01/16 Python
gearman的安装启动及python API使用实例
2014/07/08 Python
python optparse模块使用实例
2015/04/09 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
PHP经典面试题
2016/09/03 面试题
LINUX下线程,GDI类的解释
2016/12/14 面试题
女儿十岁生日答谢词
2014/01/27 职场文书
高中生逃课检讨书
2014/10/10 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js