2016-04-20 232 views
0


我做了一個簡單的.php文件,該文件應該爲我繪製一條線,爲此用戶使用一個表單給出了開始點和結束點。通過'畫',我的意思是告訴你它着色的像素。是的,我知道這隻適用於非常特定的行。
這是我的整個文件:我的簡單線條「繪圖」代碼有什麼問題?

<html> 
<head> 
    <title>Thing</title> 
    <?php 
     function positiveLowLine($x,$y,$x0,$x1,$y0,$y1){ 
      return (($x1–$x0)*$y – ($y1–$y0)*$x – $x1*$y0 + $x0*$y1); 
     } 
    ?> 
</head> 
<body> 
    <form name="Q1" method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> 
     <table> 
      <tr> 
       <td align="right">x0</td> 
       <td><input type="number" name="x0" value="<?php echo $_POST["x0"]; ?>"></td> 
      </tr> 
      <tr> 
       <td align="right">x1</td> 
       <td><input type="number" name="x1" value="<?php echo $_POST["x1"]; ?>"></td> 
      </tr> 
      <tr> 
       <td align="right">y0</td> 
       <td><input type="number" name="y0" value="<?php echo $_POST["y0"]; ?>"></td> 
      </tr> 
      <tr> 
       <td align="right">y1</td> 
       <td><input type="number" name="y1" value="<?php echo $_POST["y1"]; ?>"></td> 
      </tr> 
     </table> 
    </form> 
    <?php 
     if (!empty($_POST)){ 
      $x0 = $_POST["x0"]; 
      $x1 = $_POST["x1"]; 
      $y0 = $_POST["y0"]; 
      $y1 = $_POST["y1"]; 

      $y = $y0; 
      for($x = $x0;$x <= $x1; $x++){ 
       echo "Step $x | x=$x | y=$y" 
       if (positiveLowLine($x,$y,$x0,$x1,$y0,$y1) < 0){ 
        $y++; 
       } 
      } 
     } 
    ?> 
</body> 

我收到和錯誤,說syntax error, unexpected '$x0' (T_VARIABLE) in /file.php on line 6(這是回線)
但我不明白有什麼問題。

編輯我的確採取了看看this post(「PHP解析/語法錯誤,以及如何解決這些問題?」),但得到的答覆是不是對我有。至少我找不到它。

回答

2

您正在使用錯誤的減號字符。您正在使用(char code 8211),減號是-(char code 45)。我不知道你是如何擁有這個不同的角色,但改變它會起作用。

<?php 
     function positiveLowLine($x,$y,$x0,$x1,$y0,$y1){ 
      return (($x1 - $x0) * $y - ($y1 - $y0) * $x - $x1 * $y0 + $x0 * $y1); 
     } 
?> 

但隨後就在這裏指出的錯誤:

for($x = $x0;$x <= $x1; $x++){ 
    echo "Step $x | x=$x | y=$y" 
    if (positiveLowLine($x,$y,$x0,$x1,$y0,$y1) < 0){ 
     $y++; 
    } 

你缺少一個分號;回聲之後,如果以上。

全部工作代碼:

<html> 
<head> 
    <title>Thing</title> 
    <?php 
     function positiveLowLine($x,$y,$x0,$x1,$y0,$y1){ 
      return (($x1 - $x0) * $y - ($y1 - $y0) * $x - $x1 * $y0 + $x0 * $y1); 
     } 
    ?> 
</head> 
<body> 
    <form name="Q1" method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> 
     <table> 
      <tr> 
       <td align="right">x0</td> 
       <td><input type="number" name="x0" value="<?php echo $_POST["x0"]; ?>"></td> 
      </tr> 
      <tr> 
       <td align="right">x1</td> 
       <td><input type="number" name="x1" value="<?php echo $_POST["x1"]; ?>"></td> 
      </tr> 
      <tr> 
       <td align="right">y0</td> 
       <td><input type="number" name="y0" value="<?php echo $_POST["y0"]; ?>"></td> 
      </tr> 
      <tr> 
       <td align="right">y1</td> 
       <td><input type="number" name="y1" value="<?php echo $_POST["y1"]; ?>"></td> 
      </tr> 
     </table> 
    </form> 
    <?php 
     if (!empty($_POST)){ 
      $x0 = $_POST["x0"]; 
      $x1 = $_POST["x1"]; 
      $y0 = $_POST["y0"]; 
      $y1 = $_POST["y1"]; 

      $y = $y0; 
      for($x = $x0;$x <= $x1; $x++){ 
       echo "Step $x | x=$x | y=$y"; 
       if (positiveLowLine($x,$y,$x0,$x1,$y0,$y1) < 0){ 
        $y++; 
       } 
      } 
     } 
    ?> 
</body> 
+0

先生,你是我的f **國王的英雄。 – Kasper

+0

解決了!我還注意到,我應該在每行回顯後添加一個提交按鈕和一個
。謝謝! – Kasper