php 冷门与常用函数

目录

数组

1 . array_diff比较数组的差集

(判断请求参数是否缺少,在已设定的数组里)

$request = [
    'name'=>'xiaoming',
    'age'=>'18',
    'gender'=>''
]
function test( $request ){
    // 需要入库的参数
    $must = ['name','age','gender','school','height'];
    // 将请求参数的键取出比较
    $request_keys = array_keys($request);
    // 将请求中缺少的参数返回
    $param = array_diff($must , $request_keys);
    // 返回一个差集的数组
    // $param = ['school','height']

    // 此时可继续判断符合的参数是否有空值
    foreach ($must as $v){
        if(empty($requset[$v])){
            echo $v . '不能为空';
        }
    }
}
2 . array_column多维数组里只取指定的字段
班级表数组取所有学生姓名:
array_column ($arr, 'userName');
3 . compact()创建已有变量成数组
$m = 'is.m';
$n = 'is.n';
$l = 'is.l';
1$result = compact('m','n','l');      包含变量名的字符串
2: $result = compact(['m','n','l']);    包含变量名的数组
Array
(
    [m] => is.m
    [n] => is.n
    [l] => is.l
)
4 . extract()将数组键转为变量
$m = [
    'a'=>'---a',
    'b'=>'---b',
    'c'=>'---c'
];
$q = extract($m);
echo "$a \n $b \n $c";

$q = extract($m, EXTR_PREFIX_ALL,'t');     给所有变量加前缀
echo "$t_a \n $t_b \n $t_c";
5 . array_map处理数组每个值
# 普通文件
$arr = [1,2,3,4,5];
function foo($n)
{
    return $n * $n;
}
$res = array_map('foo', $arr);
# $res = [1,4,9,16,25]
# 匿名函数
$arr = [1,2,3,4,5];
$res = array_map(function($n){
    return $n * $n;
},$arr);
# $res = [1,4,9,16,25]
# 该函数在类中的运用
# 类中第一个参数为数组 ['类名','方法名']
$arr = [1,2,3,4,5];
class foo
{
    public function __construct($arr)
    {
        $res = array_map(['foo','map'], $arr);
        print_r($res);
        # $res = [1,4,9,16,25]
    }
    public function map($n)
    {
        return $n += time();
    }
}
new foo($arr);
6 . array_filter数组去空,callback过滤数组
$arr = [1,'',2,'',false,3,4];
array_filter($arr);
# [1,2,3,4]
7 . array_merge合并,重置索引
$arr = [1=>'a',3=>'b',8=>'c'];
array_merge($arr);
# ['a','b','c']
8 . 数组排序
// 重置索引
sort         从低到高
rsort        从高到底
ksort   按键 从低到高

// 保持键名
krsort  按键 从高到低
arsort       从高到低
asort        从低到高

string

目录

1 . json正确转换中文
$n = ['name'=>'小米'];
json_encode( $n )
                {"name":"\u5c0f\u7c73"}

json_encode( $n,JSON_UNESCAPED_UNICODE );
                {"name":"小米"}
2 . strval获取变量的字符串值
# 将变量的标量类型转换成string类型
$a = 123;
$b = 'hello';
$c = 99.9;
$d = true;
strval($a);        // string(0) "123"
strval($b);        // string(0) "hello"
strval($c);        // string(0) "99.9"
strval($d);        // string(0) "1"

预定义常量

目录

1 . DIRECTORY_SEPARATOR路径分隔符
路径分隔符常量 "DIRECTORY_SEPARATOR"
window:"\"
linux:"/"
例:define('UPLOAD', dirname(__FILE__).DIRECTORY_SEPARATORY.'upload'.DIRECTORY_SEPARATORY)
结果:E:\www\shop\upload\

类与对象

目录

1 . property_exists判断属性是否存在

property_exists( 对象obj或对象名string , 属性名 )

class a
{
    protected $a;
    protected $b;
}
$obj = new a();
if (property_exists($obj, 'a')) {
    echo "exist";
}

文件与目录

目录

1 .Linux中常常遇到权限问题,例如保存图片等
// 判断文件是否 **可读**
is_readable()

// 判断文件是否 **可写**
is_writable()

// 判断文件是否 **可执行**
is_executable()
2 .glob()查找与模式匹配的文件或目录

可以替代opendir( ),具有打开目录句柄的能力,直接匹配文件

// 查找匹配的文件
glob('*.php') // 当前目录
array(2) { 
    [0]=> string(5) "a.php" 
    [1]=> string(7) "b.php"}

// 带目录匹配
glob(dirname(__FILE__).'\\'.'*.php');
array(2) { 
    [0]=> string(22) "E:\www\test\a.php" 
    [1]=> string(24) "E:\www\test\b.php"}

// 查找匹配的目录
$a = glob(ROOT_PATH.'\\*',GLOB_ONLYDIR); // 表示仅返回匹配到的目录
array(2) { 
    [0]=> string(22) "E:\www\test\aadir" 
    [1]=> string(21) "E:\www\test\bbdir" }

返回目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值