[PHP学习教程]006.偷龙转凤技巧10则(Remember Tips)

引言:PHP当中的一些猬锁技巧,比较基础,想起就发贴总结一下,老鸟换个姿势飘过去就是。

【技巧】应该属于“方法”的一个范畴,主要指对一种生活或工作方法的熟练和灵活运用。
【五笔】RFAG。

话不多说,下面就列一列!

字符串操作



1.str_replace+[文本替换]

文本替换是极其常用的PHP函数,非常常常常常常常用,经常看到有一些兄弟写一大堆str_replace只为循环对一个原始字符串进行内容替换,实在是惨不忍睹。

比如:

$str = ‘大象的尿尿盆 --- do.org.cn‘;
$str = str_replace(‘大象‘, ‘杨清山‘, $str);
$str = str_replace(‘的‘, ‘di‘, $str);
$str = str_replace(‘尿尿盆‘, ‘马桶‘, $str);
$str = str_replace(‘do.org.cn‘, ‘do.org.cn/joke‘, $str);

改进:

$str = ‘大象的尿尿盆 --- do.org.cn‘;
$str = str_replace(array(‘大象‘, ‘的‘, ‘尿尿盆‘, ‘do.org.cn‘), array(‘杨清山‘, ‘di‘, ‘马桶‘, ‘do.org.cn/joke‘), $str);

说明:原写法替换了4次字符串,实际只要换个写法,一行就搞定了 :)

数组操作



1.key in array+[数组键]

经常看到有人拿数组这样写:

echo $arr[some_key];

上面这行代码能跑,看上去也没什么大问题,但是如果你把php.ini的error notice打开的话,会收到一大批error。php解析器首先是拿“some_key”当作一个常量来解释的,但如果没有定义some_key这样一个常量,解析器还是很宽容的把它当作了一个字符串来看待。因此新人同学们最好写完整一点:

改进:

echo $arr[‘some_key‘];

或者:

如果你要把它放在双引号中连用,也不能省掉引号,可以这样写:

echo "这是混在双引号中的字符串{$arr[‘some_key‘]}";

类型转换



1.Type Juggling+[类型戏法]

基础类型转换-类型戏法相当好用,比如有一个表单提交过来的变量,正常情况下它应该是整型的,有时候偷懒省去校验的写法可以是这样的:

$intVar = (int)$_POST[‘post_var‘];

数组转换对象-再比如数组,有时候写键值要打引号是不是很不爽啊,我们可以把它转换成object,比如:

$arr = array(‘name‘ => ‘volcano‘, ‘sex‘ => ‘male‘);
$arr = (object)$arr;

echo $arr->name;
echo $arr->sex;

说明:虽然是很省事,但毕竟是一些类型戏法,难免保证在其他版本的PHP不会发出警告之类

Lambda函数



1.For Shorten+[For缩减]

lamda函数和array_*系列函数使用有奇效,拿php手册上的一个例子来说:

<?php
    $av = array("the ", "a ", "that ", "this ");
    array_walk($av, create_function(‘&$v,$k‘, ‘$v = $v . "mango";‘));
    print_r($av);
?>

说明:至少省了一个for循环

页面渲染



1.Page Table+[嵌套循环显示表格的单元格]

嵌套循环显示表格的单元格,这是一个很老的话题,往往会要在某个单元格后边加个条件判断什么的,考虑是不是要输出tr抑或是td标签。

俺这里介绍一个办法,利用array_chunk函数能够比较工整的输出html,见下例,这个例子要输出一个4行6列的表格:

<?php
$arr = range(1, 24); // 这个会生成一个数组array(1,2,3,4....24)
$arr = array_chunk($arr, 6);

// output table
?>

<table>
    <?php foreach($arr as $row): ?>
    <tr>
        <?php foreach($row as $col):?>
        <td><?php echo $col?></td>
        <?php endforeach;?>
    </tr>
    <?php endforeach;?>
</table>

未完,待更新...

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4817565.html

时间: 2024-10-16 09:43:02

[PHP学习教程]006.偷龙转凤技巧10则(Remember Tips)的相关文章

[PHP学习教程]006.获取网页内容(URL Content)

引言:获取网页内容是我们实现网页操作的基本之基本,今天这一讲,我们和大家讲一下基本请求网页内容的几种方法. 我们似乎每天都要做这样一件事情,打开一个浏览器,输入网址,回车,一个空白的页面顿时有了东西,它可能是百度之类的搜索页面,或是一个挤满了文字和图片的门户网站. 我们可以从三个方面理解这个过程,一个是浏览器,二个是服务器,第三个是浏览器和服务器之间通信的协议. 当然,我们今天不讲<网页请求过程 > 这一次,我们说一下如何用PHP代码请求网页内容. 获取网页内容方法 1.file_get_co

Deep Learning 深度学习 学习教程网站集锦

http://blog.sciencenet.cn/blog-517721-852551.html 学习笔记:深度学习是机器学习的突破 2006-2007年,加拿大多伦多大学教授.机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在<科学>以及在Neural computation 和 NIPS上发表了4篇文章,这些文章有两个主要观点: 1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类: 2

C++基础学习教程(二)

接上一节内容 2.5条件和逻辑 自增和自减操作符 这个主要区别就是在前和后,大多数学习过其他语言的应该都知道.所以,一个程序带过. 示例如下: /************************************************************************* > File Name: list1001_++.cpp > Author: suool_hu > Mail: [email protected] > Created Time: 2014年0

DbNetGrid控件学习教程及下载使用指南

DbNetGrid是龙博方案网的旗帜产品.它是一款基于网页的报告工具,它能简单地在浏览器中展示数据库信息.通过DbNetGrid,您能在不编写任何代码的情况下搜索.导航.分类.编辑.复制.打印以及导出数据库信息.是一款完全压缩的.用于内网与互联网开发的HTML网格控件.它被设计用来实现能在浏览器环境中展示与更新数据库信息的快速灵活的方法.DbNetGrid能完全开发IE5及更高版本浏览器的功能 具体功能: 搜索.导航.分类.更新.添加.删除.导出.上传.连接.嵌入.打印.复制以及更多-- 不需要

java学习教程之代码块

学编程吧java学习教程之代码块发布了,欢迎通过xuebiancheng8.com来访问 java中的代码块包括下面几种: 1.普通代码块 2.构造代码块 3.静态代码块 1.普通代码块很简单看下面这个例子: public class Test{ public static void main(String args[]){ { //此处就是普通代码块,普通代码块中的代码按顺序执行 System.out.println("hello"); } } } 2.构造代码块 public cl

AngularJS交互学习教程推荐

0.目录 目录 预览 详述 1 Learn Angular 2 AngularJS入门教程 感悟 声明 1.预览 急着赶时间,没有时间听我废话的同学,直接看今天推荐的两个AngularJS交互学习教程. CodeCademy的LearnAngularJS Fenby的AngularJS入门教程 2.详述 许多研究表明,探究式学习.游戏式学习是较为高效的学习方式,编程语言学习更是如此.正如看电影和玩游戏的区别,你在看电影的时候,你完全处于被动的.接受内容状态,而玩游戏则全然不同,你会和计算机有交互

spring4.0.6最新稳定版新特性学习,简单学习教程(一)

Spring Framework 4.0 学习整理. Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一二,很多项目,往往是外包公司的项目,配置文件往往是乱七八糟,抱着能跑就行,不报错就行的态度去写,然后在项目中后期发现各种缺失又去一通乱补,其结果就是,整个文档可读性极差,毫无章法.这也不能怪写这个XML的人,拿着苦逼程序员的工资干着架构师的工作必然是这个结果.为了程序员的幸福,我认为有必要来一套简单快速的官方

【下班后学Android】学习教程推荐

学习教程看的不多,这里推荐一个[马上学Android]:http://www.youku.com/playlist_show/id_23450555.html?sf=10200. 史上最快的安装模拟器:genymotion,http://www.genymotion.net/.

Linux学习教程推荐下载

RedhatLinux系统管理 http://down.51cto.com/data/1328166 The.Complete.FreeBSD.3rd.Edition http://down.51cto.com/data/1328165 UNIX和Linux权威教程(第三版) http://down.51cto.com/data/1328164 linux系统常用基本命令 http://down.51cto.com/data/1328163 红帽企业Linux虚拟化管理 http://down.