使用php的几个小技巧zz

上一篇 / 下一篇  2007-05-26 17:31:01 / 个人分类:php文集搜罗

php的一些小技巧

1. str_replace

str_replace是非常常常常常用的php函数,用于字符串替换,经常看到某些php新人为了替换一批字符串,写了好多行str_replace,实在是惨不忍睹。

比如这个例子:

PHP:
  1. $str='某人的栖息地 --- www.ooso.net';
  2. $str=str_replace('某人','坏人',$str);
  3. $str=str_replace('的','di',$str);
  4. $str=str_replace('栖息地','猪窝窝',$str);
  5. $str=str_replace('www.ooso.net','ooso.net',$str);

以上,替换了4次字符串,实际只要换个写法,一行就搞定了:

PHP:
  1. $str='某人的栖息地 --- www.ooso.net';
  2. $str=str_replace(array('某人','的','栖息地','www.ooso.net'),array('坏人','di','猪窝窝','ooso.net'),$str);

2. array

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

echo$arr[some_key];

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

echo$arr['some_key'];

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

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

3. 类型戏法

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

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

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

$arr=array('name'=>'volcano','sex'=>'male');
  1. $arr=(object)$arr;
  2.  
  3. echo$arr->name;
  4. echo$arr->sex;

是不是很省事?

4. lambda函数

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

  1. <?php
  2. $av=array("the ","a ","that ","this ");
  3. array_walk($av,create_function('&$v,$k','$v = $v . "mango";'));
  4. print_r($av);
  5. ?>

至少省了一个for循环

5. 嵌套循环显示表格的单元格

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

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

<?php
  1. $arr=range(1,24);//这个会生成一个数组array(1,2,3,4....24)
  2. $arr=array_chunk($arr,6);
  3.  
  4. // output table
  5. ?>
  6.  
  7. <table>
  8. <?phpforeach($arras$row):?>
  9. <tr>
  10.  <?phpforeach($rowas$col):?>
  11.   <td><?phpecho$col?></td>
  12.  <?phpendforeach;?>
  13. </tr>
  14. <?phpendforeach;?>
  15. </table>

TAG: php 技巧 php文集搜罗

引用 删除 oop   /   2008-04-14 18:45:44
不错
北方狼 引用 删除 zhoulei   /   2007-05-26 19:45:23
很实用
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar