2013-03-16 147 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>