2013-03-16 125 views
0

我想將創建三角形的Javascript代碼轉換爲PHP代碼,Javascript代碼可以工作,但PHP代碼不能。這是我在我的PHP代碼中所做的,我試圖運行它,但最終發生了致命錯誤和未定義變量。我理解JavaScript,但不是PHP ...我的php代碼有什麼問題?

<?php 
    { 
     $size = $_POST['size']; 
     $firstChoice = $_POST['firstChoice']; 
     $secondChoice = $_POST['secondChoice']; 

     echo "<textarea>"; 
      $allLines = ''; 
       for ($i = 1; $i <= $size; $i++) 
        { 
        $oneLine = createLine ($i, $i % 2 ? $FirstChoice : $secondChoice); 
        $allLines += $oneLine + "\n"; 
        } 
      echo "$allLines"; 

      function createLine ($size, $symbol) { 
      $aLine = ''; 
       for ($j = 1; $j <= $size; $j++) 
       { 
        echo $aLine += $symbol; 
       } 
       echo "$aLine"; 
      echo "</textarea>";   
    } 
?> 

它應該是這樣的,如果size = 5firstChoice = #secondChoice = &

# 
&& 
### 
&&&& 
##### 
+1

錯誤通常在他們有用的信息javascript函數。如果我們能夠提供幫助,我們可能需要逐字查看錯誤。 – hdgarrood 2013-03-16 20:34:54

+0

這是我得到的錯誤,'Undefined variable:createLine'和'致命錯誤:函數名稱必須是一個字符串',全部引用'$ oneLine = $ createLine($ i,$ i%2?$ FirstChoice:$ 'line – 2013-03-16 20:37:29

回答

1

什麼是$createLine?看起來好像你試圖把它作爲一個函數使用,但它並沒有在任何地方定義。

編輯

您需要聲明函數在PHP

function createLine($size, $symbol) { 
    // code 
} 

當你罵它,只是把它的名字,不添加$

$line = createLine($a, $b); 

請參閱關於php User-defined functions的文檔。

工作

有幾個問題,包括:字符串連接應使用.運營商不+,一個錯字在$FirstChoice和功能需要在使用前進行定義。

<?php 
    $size = $_POST['size']; 
    $firstChoice = $_POST['firstChoice']; 
    $secondChoice = $_POST['secondChoice']; 

    function createLine($size, $symbol) { 
    $aLine = ''; 
    for ($j = 1; $j <= $size; $j++) { 
     $aLine .= $symbol; 
    } 
    return $aLine; 
    } 

    echo "<textarea>"; 
    $allLines = ''; 
    for ($i = 1; $i <= $size; $i++) { 
    $oneLine = createLine($i, $i % 2 ? $firstChoice : $secondChoice); 
    $allLines .= $oneLine . "\n"; 
    } 
    echo "$allLines"; 
    echo "</textarea>"; 
?> 
+0

這是JavaScript中的第二個函數,'function createLine(size,symbol) var aLine =「」; '它假設在javacript中調用'createLine'函數,不知道這是如何在PHP中執行的。 – 2013-03-16 20:35:20

+0

刪除$字符 – tomis 2013-03-16 20:36:27

+0

@KennethMa - 請參閱我的編輯。 – Aiias 2013-03-16 20:38:41

0

使用createLine(...),而不是$createLine(...) 我想有一個像下面

<script> 
function createLine (...) 
{ 
... 
} 
</script>