将函数从JS转换为PHP

将函数从JS转换为PHP,php,javascript,Php,Javascript,我在javascript中有一个函数,它工作得很好,但现在我需要在PHP中使用相同的函数,它的行为非常奇怪。在我看来,函数是相同的,但我还是错过了一些东西,无法找到它 边框、邻域是预定义的数组,基是预定义的字符串 Java脚本 function calculateAdjacent(sourceBase, direction) { sourceBase = sourceBase.toLowerCase(); var lastChar = sourceBase.charAt(sour

我在javascript中有一个函数,它工作得很好,但现在我需要在PHP中使用相同的函数,它的行为非常奇怪。在我看来,函数是相同的,但我还是错过了一些东西,无法找到它

边框、邻域是预定义的数组,基是预定义的字符串

Java脚本

function calculateAdjacent(sourceBase, direction) {
    sourceBase = sourceBase.toLowerCase();
    var lastChar = sourceBase.charAt(sourceBase.length-1);
    var type = (sourceBase.length % 2) ? 'odd' : 'even';
    var base = sourceBase.substring(0,sourceBase.length-1);
    if (BORDERS[direction][type].indexOf(lastChar)!=-1)
    {
        base = calculateAdjacent(base, direction);
    }
    return base + TABLE[NEIGHBORS[direction][type].indexOf(lastChar)];
}
PHP

($table、$neights、$borders都已定义,它们占用了大量空间,但我可以将它们放入。)


$borders
变量未定义(或不在范围内)


编辑:
$neighbories
也。

未定义
$borders
变量(或不在范围内)


编辑:
$neights
也。

可能是串联运算符(取决于函数返回的是字符串还是数字):


这里的
用于PHP替换JS的
+
进行连接。

连接运算符可能(取决于函数返回的是字符串还是数字):


这里的
用于PHP而不是JS的
+
用于连接。

另外,您在JS中使用的是三元运算符,而不是PHP,只是好奇为什么

if (strlen($sourceBase) % 2)
{
    $type = "odd";
}
else
{
    $type = "even";
}
可以使用php

$type = strlen($sourceBase) % 2 ? "odd" : "even";

另外,您在JS中使用的是三元运算符,而不是PHP,只是想知道为什么

if (strlen($sourceBase) % 2)
{
    $type = "odd";
}
else
{
    $type = "even";
}
可以使用php

$type = strlen($sourceBase) % 2 ? "odd" : "even";

是的,我删掉了它们,因为数组在代码中占用了很多空间。@Qmal然后至少留下一行注释,提到。。这是一个重要的细节。是的,我删掉了它们,因为数组在代码中占用了很多空间。@Qmal然后至少留下一行注释,提到。。这是一个重要的细节。
$table
未在PHP函数中定义。它只迭代一次并返回一个字符,而在js中返回多个字符。仅供参考,您可以在PHP中执行以下操作:
$type=strlen($sourceBase)%2?“奇数”:“偶数”
压缩if语句,就像JavaScript中一样。
$table
未在PHP函数中定义。它只迭代一次并返回一个字符,而在js中返回多个字符。仅供参考,您可以在PHP中执行类似操作:
$type=strlen($sourceBase)%2?“奇数”:“偶数”来压缩if语句,就像你在JavaScript中一样。是的,就是它,我知道它很小。谢谢你,伙计!是的,就是它,我知道它很小。谢谢你,伙计!