月度归档:2019年04月

call_user_func使用范例

/**
 * Class my_class
 */
class my_class {
    /**
     * @param $name
     */
    static function say_hello($name)
    {
        echo "Hello,".$name."\n";
    }
}

$classname = "my_class";
call_user_func([$classname,'say_hello'],'damon');
call_user_func($classname."::say_hello",'connie');

$myObj = new my_class();
call_user_func([$myObj,'say_hello'],'Jerry');
1+

array_reduce的用法

$employees = [
    [
        'name' => 'damon',
        'age' => 34,
        'email' => 'yank@qq.com',
    ],
    [
        'name' => 'connie',
        'age' => 33,
        'email' => 'connie@qq.com',
    ],
    [
        'name' => 'jerry',
        'age' => 7,
        'email' => 'jerry@qq.com',
    ]
];


$emails = array_reduce($employees,function ($carry,$item){
    $carry[$item['name']] = $item['email'];
    return $carry;
},[]);

dd($emails);

print result:

array:3 [▼
  "damon" => "yank@qq.com"
  "connie" => "connie@qq.com"
  "jerry" => "jerry@qq.com"
]
0

用一层循环找出数组当中两两相加等于100的数

这是昨天碰到的面试题,不得不承认直接想有点想不出来,用代码实现其实还好。

<?php

    $sourceArr = [56,10,20,50,50,70,30,44];
    $tmpArr = [];

    foreach ($sourceArr as $key => $value) {
        if(isset($tmpArr[100 - $value])){
            echo $value.'---'.$tmpArr[100 - $value]."<br/>";
        }else{
            $tmpArr[$value] = $value;
        }
    }

结果:

50---50
30---70
44---56
2+

Linux任务在前后台切换

举个栗子,你正在撸代码编辑一个index.php文件,vim index.php

突然想去找一个路径或者去系统里面干点别的啥事。这个时候又不想放弃正在写的index.php。此时退出vim的insert模式—按下esc,再按下ctrl+z,将正在进行的vim切到后台任务去。

好了,你已经知道了路径了,你按下jobs可以查看后台运行的任务。假设你输入job得到如下显示[1] + 3360 suspended vim index.php,中括号里的就是jobnumber,这里是1,按下命令行中输入fg %1,好了,又可以撸代码了~~~

0

Composer常用命令

  • php package仓库:https://packagist.org/
命令描述
composer search xxxx搜索包
composer show -i查看当前安装的包
composer show -a xxx/xxx显示详情
composer install安装(默认安装composer.lock)
composer install –no-dev安装(忽略require-dev)
composer update更新包(重新生成composer.lock)
composer dump-autoload生成autoload文件
composer init初始化composer项目

使用composer自动加载类文件

建立composer.json文件指定src文件夹的命名空间

    {
      "autoload":{
        "psr-4":{
          "App\\":"src/"
        }
      }
    }

生成自动加载文件

    composer dump-autoload

引入自动加载文件

    require_once 'vendor/autoload.php';
0

window环境下使用laragon代替wamp

  • 官网地址:https://laragon.org

Laragon集成了非常多的模块:Apache、Nginx、Node.js、Mysql、Redis等等,基础包括了Phper需要的绝大多数模块,而且配置非常简单,安装只需要一顿窒息的操作,狂点Next,界面也支持中文,但目前这个版本在win10当中选择中文是乱码。所以可以选择英文安装,装好之后选择中文,可以正确显示。

laragon还集成了mysql的图形界面,简单使用一下还是不错的

Laragon提供了一个友好的终端命令行,可以打开预装的redis服务,然后在命令行里直接输入redis-cli连接,这一点也是比wamp方便很多


Laragon还提供了自动创建虚拟目录配置的功能,直接将文件夹放在根目录里面,然后重载Nginx或者Apache服务,然后通过自定义的规则访问如:xxx.test取代localhost/xxx

0