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 に答える