2014-01-07 18 views
3

我有一个PHP代码里面:PHP - 不能要求功能的双引号

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

$test = new Test(); 

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

但似乎我不能叫一个双引号的字符串

我如何能做到这里面的功能?

感谢

+0

除非你使用eval(),否则你不能这样做,这通常是一个坏主意。您必须在字符串之外获得函数调用。 – Calimero

+1

ive更新了问题,以显示我需要打印一些文字+返回值的函数 –

+2

concatenate :)) –

回答

6

,你只能叫变量的字符串

内,但如果你使用{}您可以将块添加代码

试试这个:

echo "bla bla bla {$test->someThing()}"; 
+0

这只适用于成员变量(带箭头' - >'),全局函数不能。 – Abdillah

2

试试这个way

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

$test = new Test(); 

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

弦的另一部分在哪里? –

+0

谢谢@RoyalBg – sas

1

你应该使用这个

echo "".$test->someThing().""; 

或不带双引号。

echo $test->someThing(); 
0

你也可以把一个函数名称的变量中,然后使用该变量像双引号字符串内一个真正的函数:

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

需要注意的是,你甚至可以通过paramater这一号召。

+0

这是很好的知道,但实际上并没有回答这个问题。风流冬日狂欢! – wizzwizz4