zoukankan      html  css  js  c++  java
  • [PHP学习教程

    引言: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

     

  • 相关阅读:
    Vuejs之Component slot 插槽详解
    ASP.NET MVC生命周期与管道模型
    Unity IoC Base On MVC
    轻量级IoC框架Ninject.NET搭建
    原创【前端控件】之日历控件
    出现了内部错误-网站中X509Certificate2加载证书时出错
    windows service 1053错误 启动失败
    关于浏览器Number.toFixed的错误修复
    vue中用mock制造模拟接口(本文主要解决坑),一定要看完哦
    ubuntu开发项目不能执行热更新
  • 原文地址:https://www.cnblogs.com/superdo/p/4817565.html
Copyright © 2011-2022 走看看