我该如何将这段旧的BASIC作为PHP函数来编写


How do I write this old piece of BASIC as a PHP Function?

假设以下变量值在代码的早期设置:

LSLATHOR = 1780NRSLATVER = 34

然后我有两行GWBASIC:

100 PITCHHOR=(LSLATHOR/(NRSLATVER+1))  :  LSLATHOR=PITCHHOR*(NRSLATVER+1)
110 IF PITCHHOR>72 THEN NRSLATVER=NRSLATVER+1:GOTO 100
120 LPRINT "HORIZONTAL PITCH is equal to : ";PITCHHOR;

现在,如果我想把这个逻辑作为一个PHP函数,我该怎么做呢?:

function calc_h($slat_length_h, $slat_qty_v) {
    $pitch_h = ($slat_length_h / ($v_slat_qty + 1));
    if ($pitch_h > 72) {            
            while ($pitch_h > 72) {                    
                $v_slat_qty += 1;
                $slat_length_h = $pitch_h * ($v_slat_qty + 1);
                $pitch_h = ($slat_length_h / ($v_slat_qty + 1));                 
            }
    }     
    return $pitch_h;
}
$slat_length_h = 1780;
$slat_qty_v = 34;
echo calc_h($slat_length_h, $slat_qty_v);

您需要知道的是,PITCHHOR > 72有时会存在一个条件,然后它需要根据GWBasic脚本调整/重新计算$pitch_h。

我希望我提供了足够的信息。Ty vm。

我会写如下。但是,由于您有原始代码,您可以简单地插入一些示例值并比较结果。

function calc_pitchhor($lslathor, $nrslatver) {
  do {
        $pitchhor = ($lslathor/($nrslatver+1));
        $lslathor = $pitchhor*($nrslatver+1);
        ++$nrslatver;
  } while($pitchhor > 72)
  return $pitchhor;
}

$lslathor = 1780;
$nrslatver = 34;
echo "HORIZONTAL PITCH is equal to: ", calc_pitchhor($slat_length_h, $slat_qty_v);