3

从以下内容来看html,来自文本字段的数据由以下人员提供action_script.php

<form method='post' action='action_script.php'>
        <input type='text' name='text_field' id='text_field' />
        <input type='submit' value='submit' />
</form>

action_script.php包含以下代码:

<?php
class Tester {
    private $text_field;

    public function __construct() {
        $text_field = $_POST['text_field'];
    }

    public function print_data() {
        echo $text_field; # LINE NUMBER 10
    }
}

$obj = new Tester();
$obj->print_data();

我尝试打印从 html发送的数据action_script.php,但收到以下警告/错误:

Notice: Undefined variable: text_field in E:\Installed_Apps\xampp\htdocs\php\action_script.php on line 10

这是为什么 ?

4

3 回答 3

7

在类内部,您必须使用 引用您的成员属性$this->,例如

<?php
class Tester {
    private $text_field;

    public function __construct() {
        $this->text_field = $_POST['text_field'];
    }

    public function print_data() {
        echo $this->text_field; # LINE NUMBER 10
    }
}

$obj = new Tester();
$obj->print_data();

您还应该$_POST['text_field']在使用之前检查是否已设置

于 2013-03-15T09:43:04.487 回答
6

我正在使用该$this语句但仍然遇到同样的问题,然后我发现调用的变量不能有$符号,正如上面提到的一些用户。

例如,它不能是这样的:

$this->$text_field;

这是正确的方法

$this->text_field;
于 2018-08-17T14:33:30.503 回答
2

应该 -

echo $this->text_field;

在您的print_data方法以及所有其他方法中...

使用$this关键字访问成员属性和函数。

于 2013-03-15T09:43:48.517 回答