欢迎访问宙启技术站
智能推送

PHP函数之道:10个让你代码更优雅的函数

发布时间:2023-06-24 00:35:34

PHP是一种非常流行的网络编程语言。在PHP中,函数是非常重要的构件。PHP实际上提供了许多内置函数,可以使编码更加容易。然而,有时候内置函数并不足以解决所有问题。在这种情况下,我们需要自己编写函数。本文将介绍一些优雅的PHP函数,可以帮助你更好地组织代码。

1. array_first() - 返回数组的 个元素

这个函数可以用来返回数组的 个元素,这样你就不需要使用array_shift()函数了。这个函数能够有效地减少你的代码量,并且让你的代码更具可读性。

function array_first($array) {
    if (count($array) > 0) {
        return $array[0];
    }
}

2. array_last() - 返回数组的最后一个元素

这个函数与array_first()函数类似,但是它可以返回数组的最后一个元素。

function array_last($array) {
    if (count($array) > 0) {
        return $array[count($array)-1];
    }
}

3. array_get() - 获取数组的值

这个函数可以用来获取数组中指定键的值。如果该键不存在,则返回默认值。

function array_get($array, $key, $default = null) {
    return isset($array[$key]) ? $array[$key] : $default;
}

4. str_contains() - 判断字符串中是否包含指定子串

这个函数可以用来判断一个字符串中是否包含指定的子串。在PHP 8.0之前,可以使用strpos()函数来实现相同的功能,但是在PHP 8.0之后,我们可以使用str_contains()函数。

if (str_contains($string, $sub_string)) {
    //包含指定子串
}

5. str_starts_with() - 判断字符串是否以指定前缀开头

这个函数可以用来判断一个字符串是否以指定的前缀开头。在PHP 8.0之前,可以使用strstr()函数来实现相同的功能,但是在PHP 8.0之后,我们可以使用str_starts_with()函数。

if (str_starts_with($string, $prefix)) {
    //以指定前缀开头
}

6. str_ends_with() - 判断字符串是否以指定后缀结尾

这个函数可以用来判断一个字符串是否以指定的后缀结尾。在PHP 8.0之前,可以使用substr()函数来实现相同的功能,但是在PHP 8.0之后,我们可以使用str_ends_with()函数。

if (str_ends_with($string, $suffix)) {
    //以指定后缀结尾
}

7. in_array_any() - 判断数组中是否存在任一一个指定的值

这个函数可以用来判断一个数组中是否存在任一一个指定的值。该函数的参数可以是一个或多个值,如果任一一个指定的值存在于数组中,则函数返回真,否则返回假。

function in_array_any($needles, $haystack) {
    return !!array_intersect($needles, $haystack);
}

8. array_map_keys() - 对数组的键应用指定的回调函数

这个函数可以用来对数组的键应用指定的回调函数。对于每个键,该回调函数将返回一个新的键,形成一个新的数组。

function array_map_keys($callback, $array) {
    $result = array();
    foreach ($array as $key => $value) {
        $result[call_user_func($callback, $key)] = $value;
    }
    return $result;
}

9. array_pluck() - 返回数组中每个元素的指定属性

这个函数可以用来返回数组中每个元素的指定属性。比如我们有以下数组:

$users = array(
    array('name' => 'Tom', 'age' => 20),
    array('name' => 'Mike', 'age' => 25),
    array('name' => 'John', 'age' => 30),
);

我们可以使用array_pluck()函数来返回每个用户的名字:

$names = array_pluck($users, 'name');
// $names = array('Tom', 'Mike', 'John')

这个函数可以减少循环的嵌套数量,从而使代码更加简洁。

10. array_except() - 返回数组中除指定键以外的所有键值对

这个函数可以用来返回数组中除指定键以外的所有键值对。比如我们有以下数组:

$array = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);

我们可以使用array_except()函数来返回除'age'键以外的所有键值对:

$result = array_except($array, array('age'));
// $result = array('name' => 'Tom', 'gender' => 'male')

这个函数可以帮助我们更好地组织代码,并减少代码冗余。

总之,PHP函数是编写优秀代码的重要组成部分。上述函数只是一个起点,我们可以根据自己的需求编写更多的优雅函数。