0

PHP 構文に準拠しているにもかかわらず、コードが機能しません。

$x=200;
$y=100;
class Human {
    public $numLegs=2;
    public $name;
    public function __construct($name){
        $this->name=$name; // The PHP stops being parsed as PHP from the "->"
    }
    public function greet(){
        print "My name is $name and I am happy!"; // All of this is just written to the screen!
    }
}
$foo=new Human("foo");
$bar=new Human("bar");
$foo->greet();
$bar->greet();
echo "The program is done";

なぜ機能しないのですか?これは文字通り、コピーして貼り付けた出力です。

name=$name; } public function greeting(){ print "私の名前は {this->$name} です。私は幸せです!"; $foo=new Human("foo"); } } $bar=new Human("バー"); $foo->greet(); $bar->挨拶(); echo "プログラムは終了しました"; ?>

4

3 に答える 3

1

クラスのコード内からオブジェクトのプロパティにアクセスする場合は、$this. 内部からの$nameプロパティにアクセスしていますが、 がありません。Humangreet()$this

そのはず:

public function greet(){
    print "My name is {$this->name} and I am happy!";
}
于 2013-10-21T19:28:42.343 に答える
1

PHP コードを で開始して<?php、それが単なるプレーン テキストではなく PHP コードであることを示す必要があります。

無効な構文$nameは、このスコープでは定義されていません:

public function greet(){
    print "My name is $name and I am happy!"; // All of this is just written to the screen!
}

クラスのメンバーであるため$name、使用する必要がある関数ではありません$this

public function greet(){
    print "My name is {$this->name} and I am happy!"; // All of this is just written to the screen!
}
于 2013-10-21T19:29:26.957 に答える
1

問題は、名前をクラス メンバーではなく変数として使用していることです。$thisキーワードを使用する必要があります。

 print "My name is $name and I am happy!";

 print "My name is $this->name and I am happy!";
于 2013-10-21T19:30:54.490 に答える