-4

我是 php 中的 oops 新手。这是我的第一个 oops 程序。这个程序是如此基本(表单程序),但我不知道我必须做什么。抱歉,如果这是一个新问题,但我对此很陌生。我收到错误为解析错误:语法错误,意外的 T_VARIABLE,在第 34 行第 34 行的 /ni.class.php 中期待 T_FUNCTION :$str=$ab->startform('#','post','myform')。 '

'。

              <?php
    class ni
    {

    function startForm($action='#',$method='post',$id=NULL)
    {
    $str="<form><action =\"$action\" method=\"$method\"";

            if(isset($id))
            {
            $str.="id =\"$id\">";
            }
    return $str;
    }

        function addlabel($id,$text)
        {

        $str= "<label id=\"$id\">$text hello </label>";
        return $str;
        }

    function addInput($type,$name,$value)
    {
    $str="<input type=\"$type\" name=\"$name\" value=\"$value\"\>";
    return $str;
    }

        function endForm()
        {
        return "</form>";
        }

         $ab=new ni();
         $str=$ab->startform('#','post','myform').'<p>'.
                       addlabel('label','amtext')
                     .addinput('text','input1','value1').'</p>';
         echo $str;
         $ab->endform();



    }

    ?>          
4

2 回答 2

2

你必须移动这个

$ab=new ni();
$str=$ab->startform('#','post','myform').'<p>'.
addlabel('label','amtext')
.addinput('text','input1','value1').'</p>';
echo $str;
$ab->endform();

在你的ni课堂之外


基本上是这样的

class ni {
  function startForm() { ... }
  function addLabel() { ... }
  function addInput() { ... }
  function endForm() { ... } 
}

$ab=new ni();
$str=$ab->startform('#','post','myform').'<p>'.
addlabel('label','amtext')
.addinput('text','input1','value1').'</p>';
echo $str;
$ab->endform();

更常见的是,由于类旨在可重用,您会看到它被分成多个文件

// classes/ni.php

class ni {
  function startForm() { ... }
  function addLabel() { ... }
  function addInput() { ... }
  function endForm() { ... } 
}

// somefile.php
require('classes/ni.php');
$ab=new ni();
$str=$ab->startform('#','post','myform').'<p>'.
addlabel('label','amtext')
.addinput('text','input1','value1').'</p>';
echo $str;
$ab->endform();

作为最后的建议,我会将用法更改为

$ab = new ni();
<?php echo $ab->startform('#', 'post', 'myform') ?>
<p>
  <?php echo $ab->addLabel('label', 'amtext') ?>
  <?php echo $ab->addInput('text', 'input1', 'value1') ?>
</p>
<?php echo $ab->endForm() ?>
于 2012-12-29T07:16:28.463 回答
0

您有语法错误,更正后的脚本应如下所示:

<?php class ni {

    function startForm($action = '#', $method = 'post', $id = NULL) {
        $str = "<form><action =\"$action\" method=\"$method\"";

        if (isset($id)) {
            $str .= "id =\"$id\">";
        }
        return $str;
    }

    function addlabel($id, $text) {

        $str = "<label id=\"$id\">$text hello </label>";
        return $str;
    }

    function addInput($type, $name, $value) {
        $str = "<input type=\"$type\" name=\"$name\" value=\"$value\"\>";
        return $str;
    }

    function endForm() {
        return "</form>";
    }

}

$ab = new ni(); $str = $ab -> startform('#', 'post', 'myform') . '<p>'
. addlabel('label', 'amtext') . addinput('text', 'input1', 'value1') .
'</p>'; echo $str; $ab -> endform();

?>
于 2012-12-29T07:16:17.087 回答