PHP:无法获得课程的表格价值

时间:2014-05-25 08:18:36

标签: php forms null


我得到了简单的html表单,每个输入来自这个表单我想要filtr。首先,我无法将函数结果解析为字符串,然后我意识到原因是结果为NULL。似乎表单中的数据不会转移到类(?)。你能给我一个提示 - 为什么?

index.php上的表格

<form method="post" action="index.php">
    <input type="textbox" name="nrInput" maxlength="5000"> 
    <input type="Submit" name="myForm" value="Go">
</form>

<?php
ini_set('display_errors', '1');                             
error_reporting(E_ALL);

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['myForm']) {

    $number = (empty($_POST['nrInput'])) ? die('Please enter a value.') : $_POST['nrInput'] ;
    require ('class.forminput.php'); 
    $number = new formInput(); //?
    $number->trimInput($number);
    echo $number;
}
?>

class.forminput.php

class formInput {

    public $costam;

    public function __construct()
    {
        return $this->costam;
    }

    public function trimInput($costam)
    {
        if(is_null($this->costam)) 
        {
        return 'Empty';
        }

        $costam = trim($this->$costam);
        $costam = str_replace(';', ',', $this->$costam);
        $costam = preg_replace('/[^A-Za-z0-9\-,]/', '', $this->$costam);
        $costam = trim(preg_replace('/(,|-)\1+/','$1', $this->$costam), ',');
    }

    public function __toString()
    {
        if(is_null($this->costam)) 
        {
        return 'Empty';
        }

        return $this->costam;
    }


}

结果是&#39;空&#39;

1 个答案:

答案 0 :(得分:1)

首先,PHP构造函数不返回任何内容,因此永远不会发出构造函数中的return

第二,如果要分配给类属性,则应将参数传递给它。

public function __construct($input)
{
   $this->costam = $input;
}

需要返回的是trimInput()

public function trimInput()
{
   $costam = trim($this->costam);
   $costam = str_replace(';', ',', $costam);
   $costam = preg_replace('/[^A-Za-z0-9\-,]/', '', $costam);
   $costam = trim(preg_replace('/(,|-)\1+/','$1', $costam), ',');
   return $costam;
}

您可以像这样使用它:

$number = new formInput($_POST['nrInput']);
$result = $number->trimInput();
echo $result;

另请注意,您的输入永远不会是NULL