gpt4 book ai didi

php - 将 Javascript 函数转换为 PHP 函数

转载 作者:可可西里 更新时间:2023-11-01 12:36:30 24 4
gpt4 key购买 nike

我是 PHP 的新手,我正在尝试将一个简单的 Javascript 函数转换为 PHP 函数。到目前为止,我只知道转换变量,我需要排序函数和数组过滤器的帮助。感谢您的帮助!

var closeRoll = function( number ) {
var rollArray = [36, 48, 60, 72];
var closest = rollArray.filter(function(ele){
return ele - number >= 0
}).sort()[0];
return closest;
};

我的一半转换:

function closeRoll( $number ) { 
$rollArray = Array(36, 48, 60, 72);
$closest = array_filter( $rollArray, function temp( $rollArray ) {
return $rollArray - $number >= 0;
}); //.sort()[0];
return $closest;
};

最佳答案

作用域不像 JavaScript 那样工作;您不能简单地在回调函数中引用 $number,因为它没有作用域链。

您要么必须将其设为全局(不推荐但很简单):

<?php
function doFilter($element) { // this could still be anonymous, but doesn't have to be
return $element - $GLOBALS['number'] >= 0;
}

function closeRoll( $number ) {
$GLOBALS['number'] = $number;
$rollArray = Array(36, 48, 60, 72);
$closest = array_filter( $rollArray, 'doFilter' );
return $closest;
};
?>

或者您可以使用 use 运算符(一个优雅的解决方案):

<?php

function closeRoll( $number ) {
$rollArray = Array(36, 48, 60, 72);
$closest = array_filter( $rollArray, function( $element ) use ($number) {
return $element - $number >= 0;
});
return $closest;
};

?>

关于php - 将 Javascript 函数转换为 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com