加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP比较基础的小技巧

发布时间:2020-05-25 04:02:59 所属栏目:PHP 来源:互联网
导读:php的一些小技巧,比较基础,总结一下,老鸟换个姿势飘过去就是。 1.str_replace

  php的一些小技巧,比较基础,总结一下,老鸟换个姿势飘过去就是。


  1. str_replace


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


  比如这个例子:

  $str = '某人的栖息地 --- www.oudahe.com';

  $str = str_replace('某人', '坏人', $str);

  $str = str_replace('的', 'di', $str);

  $str = str_replace('栖息地', '猪窝窝', $str);

  $str = str_replace('www.oudahe.com', 'oudahe.com', $str);

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

  $str = '某人的栖息地 --- www.oudahe.com';

  $str = str_replace(array('某人', '的', '栖息地', 'www.oudahe.com'), array('坏人', 'oudahe.com'), $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');


  $arr = (object)$arr;


  echo $arr->name;


  echo $arr->sex;


  是不是很省事?


 


  4. lambda函数


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

  <?php
  $av = array("the ", "a ", "that ", "this ");

  array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));

  print_r($av);

  ?>


  至少省了一个for循环


 


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


  嵌套循环显示表格的单元格,这是一个很老的话题哦,往往会要在某个单元格后边加个条件判断什么的,考虑是不是要输出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>


(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读