PHP - 在双引号内无法调用函数。

10
我有一段PHP代码:
class Test {
    function someThing(){ return 1}
}

$test = new Test();

//why this isn't printing bla bla bla 1????
echo "bla bla bla $test->someThing()";

但是似乎我不能在双引号字符串中调用函数。

我该怎么做呢?

谢谢。


除非您使用eval(),否则无法实现,但这通常不是一个好主意。您必须将函数调用从字符串中提取出来。 - Calimero
1
我已经更新了问题,以显示我需要打印一些单词+函数的返回值。 - The Best
4个回答

21
你只能在字符串内调用变量
但是如果你使用{},你可以在代码块中添加代码
试试这个:
echo "bla bla bla {$test->someThing()}";

17
这只适用于成员变量(使用箭头->),全局函数不行。 - Abdillah

5

您也可以将函数名放在变量中,然后像实际函数一样在双引号字符串内使用该变量:

$arr = [1,2,3];
$func_inside_var = 'implode';
echo "output: {$func_inside_var($arr)}" . '<br>';

请注意,您甚至可以向该调用传递参数。

这是一个好的了解,但并不能实际回答问题。祝冬季派对快乐! - wizzwizz4

3

尝试这种方法

class Test {
    function someThing()
    {
        return 1;
    }
}

$test = new Test();

echo 'bla bla bla ' . $test->someThing();

那句子的另一部分在哪里? - Royal Bg

1
你应该使用这个。
echo "".$test->someThing()."";

或者没有双引号。
echo $test->someThing();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接