server/app/Utils/Param.php

36 lines
840 B
PHP

<?php
/**
* Author: cfn <cfn@leapy.cn>
*/
namespace App\Utils;
use Hyperf\Context\ApplicationContext;
use Hyperf\HttpServer\Contract\RequestInterface;
class Param
{
/**
* @param array $data
* @param array|null $param
* @return array
*/
static function only(array $data, array $param = null): array
{
if (empty($param)) {
$container = ApplicationContext::getContainer();
$request = $container->get(RequestInterface::class); // 代理对象
$param = $request->all();
}
$_arr = [];
foreach ($data as $k => $v) {
if (gettype($k) == "integer") {
isset($param[$v]) && $_arr[$v] = $param[$v];
} else {
$_arr[$k] = $param[$k] ?? $v;
}
}
return $_arr;
}
}