• PHP函数--array_map

    最近开发过程中经常使用到这个函数,这个函数用在不遍历数组而通过回调函数处理数组的每一项很有用。记录一下这个函数的使用以及自己最近常用的功能。

    array_map-将回调函数作用到给定数组的单元上。

    ##说明

    array_map (callable $callback, array $arr1 [, array $...])
    

    array_map() 返回一个数组,该数组包含了arr1中的所有单元经过callback作用后的单元。callback接受的参数数目应该和传递给array_map()函数的数组数目一样。

    Read more...
  • PHP函数--array_key_exists

    好记性不如烂笔头,虽然手册上都有函数的说明,但是自己记录一遍的话能记得更加牢固。

    ##array_key_exists–检查给定的键名或索引是否存在于数组中。

    ###说明

    bool array_key_exists (mixed $key, array $search)

    array_key_exists()在给定的key存在于数组中时返回TRUE。key可以是任何能作为数组索引的值。array_key_exists()也可以用于对象。

    Read more...
  • PHP数组遍历顺序

    ##问题 上周五一位同事提出了一个问题,数组的排序是怎样的,当时理解错误,就以为是sort方法的排序规则,后来发现他想问的是数组的value的默认排序是怎样的。然后他给出下面这段代码:

    $arr = array(
        1 => 'a',
        0 => 'b',
        2 => 'c'
    );
    foreach ($arr as $val)
    {
        echo $val . ' ';
    }
    

    Read more...
  • PHP-explode以及implode函数

    ##implode–将一个一维数组的值转化为字符串。

    ###函数说明

    string implode ( string $glue , array $pieces )

    string implode ( array $pieces )

    ###参数

    glue 连接符,默认为空的字符串

    pices 你想要转换的数组

    Read more...
  • PDO中使用了ATTR_AUTOCOMMIT的一个坑

    很久没有写博客了,最近工作比较多,没有做到一星期至少一文章。在这里记录下开发过程中在PDO里遇到的一个坑。

    有一次,在执行数据库的INSERT操作时,返回的插入结果是新增的插入行的ID,但是在数据库里面没有看到插入的记录。查找了数据库的Log发现也没有执行sql的记录。折腾了恒久,然后在配置文件将所有配置去掉之后发现执行成功了。后来逐项配置取消,最后发现是设置了PDO::ATTR_AUTOCOMMIT => 0这个选项。于是便上网查找相关原因如下。

    Read more...
  • PHP中call_user_func和call_user_func_array函数使用与比较

    以前一直都有看到过和用过这两个回调函数,但是只是知道简单地使用,并没有深入了解两个函数的具体用法和不同之处,今天刚好有机会再次接触到这两个函数,就来做个总结,好记性不如烂笔头。

    ##call_user_func

    ###函数定义

    mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
    

    把第一个参数作为回调函数调用,并且将其余的参数作为回调函数的参数。

    ###参数说明

    Read more...
  • PHP匿名函数

    ##定义(摘抄自PHP手册) 匿名函数(Anonymous functions),也叫闭包函数(closures),允许创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其他应用的情况。

    ###匿名函数示例一

    <?php
        echo preg_replace_callback('~-([a-z])~', function ($match) {
            return strtoupper($match[1]);
        }, 'hello-world');
    

    输出

    helloWorld

    Read more...
  • PHP之道--函数式编程(译)

    原文出处:http://www.phptherightway.com/pages/Functional-Programming.html

    PHP支持一流的函数,意味着函数可以被赋值到一个变量。用户自定义以及内建函数都可以被变量引用以及动态调用。函数可以作为参数传递到其他函数中,函数也可以返回其他函数(这个特性被称为高阶函数)。

    递归,这是一个允许函数调用它本身的特性,它在语言中被支持,但是大多数PHP代码都是用迭代。

    匿名函数(以及闭包支持)自从PHP5.3以后出现(2009)。

    Read more...
  • PHP优化之批量操作MySQL

    设计一个数据表如下:

    create table optimization(
        id INT NOT NULL AUTO_INCREMENT,
        value VARCHAR(10) NOT NULL,
        PRIMARY KEY(id)
    );
    

    现在有一个业务需求需要批量插入数据。

    先来看看下面这一段代码:

    <?php
        $dsn = 'mysql:dbname=test;host=127.0.0.1';
        $user = 'root';
        $password = 'root';
    
        try {
            $dbh = new PDO($dsn, $user, $password);
        } catch(PDOException $e) {
            echo 'Connection failed: ' , $e->getMessage();
        }
    

    Read more...
  • TCP/IP详解读书笔记--ARP:地址解析协议

    ARP为IP地址到对应的硬件地址之间提供动态映射。

    动态是指这个过程是自动完成的。

    ##ARP解析过程 任何时候我们敲入这个形式的命令:ftp bsdi

    都会进行以下这些步骤。这些步骤的序号如图4-2所示。

    • 应用程序FTP客户端调用函数gethostbyname把主机名(bsdi)转换成32bit的IP地址。这个函数在DNS(域名系统)中称作解析器。这个转换过程或者使用DNS,或者在较小网络中使用一个静态的主机文件(/etc/hosts);
    • FTP客户端请求TCP用上一步得到的IP地址建立连接;

    Read more...