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