通过附加到PHP字符串来构建HTML表

时间:2014-03-02 08:17:59

标签: php html

首先让我先说这是一个家庭作业问题,所以我必须建立这个表的方式是因为分配的要求。这些要求需要三个php函数来构建一个html表。我有一个table,td和tr函数。我想我非常接近找到hwo来让它发挥作用。刚遇到一个小问题,想知道是否有人可以帮我解释或解释我遇到这个问题的原因。这是我的代码:

<?php

    //need a constant to keep track of the number of rows
    define('NUM_ROWS', '3');

    //function to start building table
    function table()
    {
        $myTable = '<table border="1">' . tr($myTable) . '</table>';
        return $myTable;
    }

    //function to build table rows
    function tr( $myTable )
    {
        $myTable .= '<tr>' . td($myTable) . '</tr>';
        return $myTable;
    }

    //function to build table data
    function td($myTable)
    {
        $rowData = array("Planes", "Trains", "Automobiles");
        for($i = 0, $length = count($rowData); $i < $length; $i++)
        {
            $myTable .= '<td>' . $rowData[$i] . '</td>';
        }

        return $myTable;
    }

    echo table();

    ?>

我遇到的问题是在表函数中。如果我按照上面显示的方式编写函数,它将显示表格,但是当我调用tr函数时,它还会在$myTable上给出一个未定义的变量错误。如果我将该功能更改为下面的功能,则根本不显示我的表格,只显示空白页面。

function table()
{
    $myTable = '<table border="1">';
    tr($myTable);
    $myTable .= '</table>';
    return $myTable;
}

关于我做错了什么或者能做些什么不同的任何想法?

3 个答案:

答案 0 :(得分:0)

你需要通过

您没有将任何参数传递给功能表

 function table($myTable)
    {
        $myTable = '<table border="1">' . tr($myTable) . '</table>';
        return $myTable;
    }

答案 1 :(得分:0)

你实际上并没有很好地使用传递的变量,所以只是不要试图传递变量(你在它存在之前传递,因此抱怨未定义);这样做:

<?php

//need a constant to keep track of the number of rows
define('NUM_ROWS', '3');

//function to start building table
function table()
{
    $myTable = '<table border="1">' . tr() . '</table>';
    return $myTable;
}

//function to build table rows
function tr()
{
    $tr = '<tr>' . td() . '</tr>';
    return $tr;
}

//function to build table data
function td()
{
    $td = '';
    $rowData = array("Planes", "Trains", "Automobiles");
    for($i = 0, $length = count($rowData); $i < $length; $i++)
    {
        $td .= '<td>' . $rowData[$i] . '</td>';
    }

    return $td;
}

echo table();

?>

答案 2 :(得分:0)

试试这个。

//need a constant to keep track of the number of rows
define('NUM_ROWS', '3');

//function to start building table
function table($val)
{
    $myTable="";
    $myTable = '<table border="1">' . tr($val) . '</table>';
    return $myTable;
}

//function to build table rows
function tr( $val )
{
    $myTable="";
    $myTable .= '<tr>' . td($val) . '</tr>';
    return $myTable;
}

//function to build table data
function td($val)
{
    $myTable=""; 
    for($i = 0, $length = NUM_ROWS; $i < $length; $i++)
    {
        $myTable .= '<td>' . $val[$i] . '</td>';
    }

    return $myTable;
}
$rowData = array("Planes", "Trains", "Automobiles");
echo table($rowData);