-1

おそらく文字列 "" が原因で、echo の文字列内でクラスの関数を使用しようとしても機能しません。より良い方法はありますか?

これは私のコードです:

class example{
    private $name = "Cool";

    function getName(){
        return $this->name;
    }
}


$example = new example();

//THIS WONT WORK 
echo "the name : $example->getName()";
//THIS WILL PRINT :
//the name : ()

//THIS WILL WORK
$name = $example->getName();
echo "the name : $name";
//THIS WILL PRINT :
//the name : Cool

文字列内でこれをどのように達成できますか?

ありがとう

4

4 に答える 4

5

{}二重引用符内でクラス関数を呼び出すときに使用する必要があります。

echo "the name : {$example->getName()}";
于 2013-07-02T08:00:36.597 に答える
2

テキスト ブロックから抜け出す:echo "the name : ".$example->getName();

于 2013-07-02T08:00:59.500 に答える
2

次のいずれかを連結できます。

echo 'the name: '.$example->getName();

CodeAngry が指摘したように、echo言語構造に直接渡すこともできます (連結をバイパスするため):

echo 'the name: ', $example->getName();

または中括弧を使用します。

echo "the name: {$example->getName()}";

そうしないと、この場合、パーサーは文字列のどの部分が式として扱われるかを判断できません。

'the name {$example}->getName()';//where ->getName(); is a regular string constant

また

'the name {$example->getName}()';//where ->getName is a property and (); is a regular string constant

それともメソッドの呼び出しを暗示していますか? PHP は確信が持てないので、私が個人的に好む連結 (引用符に呼び出しを含めない)、中かっこを使用して明示的に式を区切ることによって、助けの手を貸す必要があります。

于 2013-07-02T08:01:16.057 に答える
0

変数で機能するため、これは機能しません。$example->getName()メソッドです(想定される変数ではありません)。

他の人が示唆するように使用してください:引用符を外してください。

于 2013-07-02T08:01:06.110 に答える