将一段JavaScript代码转换为PHP


converting piece of javascript code to php

嗨,我正在尝试将JavaScript代码转换为php.下面是JavaScript代码

<script>
 var prefs = '["w",32,"r","s",2,"w",65,"w",26,"w",45,"w",24,"w",40,"s",2]';
var si = "hellocode";
var sig = (si + "").split("");
          function swap(arr, b) {
              l3 = arr[0];
              l4 = arr[b % arr.length];
              arr[0] = l4;
              arr[b] = l3;
              return arr
          }
          var cmd = JSON.parse(prefs||'["r","r"]');
          cmd.forEach(function (c, i) {
            if (typeof c !== "string") {
              return;
            }
            switch (c) {
            case "r":
              sig = sig.reverse();
              break;
            case "s":
              sig = sig.slice(cmd[i+1]);
              break;
            case "w":
              sig = swap(sig, cmd[i+1]);
              break;
            }
          });
</script>

到目前为止我在 php 中尝试过什么

<?php
$prefs = '["w",32,"r","s",2,"w",65,"w",26,"w",45,"w",24,"w",40,"s",2]';
$si = "hellocode";
$arr = str_split($si);
$sig = implode(',', $arr);

          function swap($arr, $b) {
              $cool = explode(",",$arr);
              $l3 = $cool[0];
              $l4 = $cool[$b % length($cool)];
              $cool[0] = $l4;
              $cool[$b] =$l3;
              return $cool;
          }
  //   $cool  = json_decode($prefs||'["r","r"]'); 
  //now i am struck with converting $prefs to array
$i=0;
foreach($cool as $c)
{
// how to get type of string here ?
// And what does slice function do ?
}

我在第二部分被击中了?请参阅评论和一些js到php的专家..请指导我.:)

在PHP中,你必须is_string检查变量是否是一个字符串。

slice提取数组的一部分(在 JS 中),PHP 挂件在处理数组时array_slice,在处理字符串时substr

您已经找到了json_decode,因此请查看手册中的示例。
您最多必须将prefs||'["r","r"]'拆分为一个if-else以检查prefs是否为空,但我不知道在这种情况下 PHP 如何处理 or 运算符。

要将.forEach从 JS 转换为 PHP,我不会去foreach(...),因为您将无法访问 JS 回调中的i。在这里使用一个简单的 for 循环。

for($i = 0; $i < count($cool); $i++) { /*....*/ }