分类目录归档:Php7

计算一个数字能拆分计算的次数

编写一个函数persistence,它接受一个正参数num并返回其乘法持久性,即必须将num中的数字相乘到一个数字的次数。这是codewars上的一道习题,感觉挺有意思的。
示例:
persistence(39) === 3; // because 3 * 9 = 27, 2 * 7 = 14, 1 * 4 = 4 and 4 has only one digit
persistence(999) === 4; // because 9 * 9 * 9 = 729, 7 * 2 * 9 = 126, 1 * 2 * 6 = 12, and finally 1 * 2 = 2
persistence(4) === 0; // because 4 is already a one-digit number

代码:

function persistence(int $num): int {
   if($num<10) return 0;
        $split_arr = str_split($num);
        $res = array_product($split_arr);
        return 1+persistence($res);

}
0

PHP7太空飞船操作符

太空飞船操作符在比较变量时非常有用,这里说的变量包括(字符串类型、整形、浮点型等)、数组、对象。这个操作符将三个比较符号(==、<、>)打包在一起,可以用于书写清晰易读的用于usort、uasort、uksort的回调函数,具体使用规则如下。

  • 当符号两边相等时返回0
  • 当符号右边大于左边返回-1
  • 当符号左边大于右边返回1

用下面的例子来比较整形、字符串类型、对象与数组。

$int1 = 1;
$int2 = 2;
$int3 = 3;

echo $int1 <=> $int3; //return 0
echo '<br>';
echo $int1 <=> $int2; //return -1
echo '<br>';
echo $int2 <=> $int3;//return 1

这个操作符在进行数组排序时是非常有用的。

function normal_sort():int
{
    if($a == $b)
        return 0;
    if($a < $b)
        return -1;
    return 1;
}

可以简化为:

function space_sort():int
{
   return $a<=>$b;
}
0