2014-01-07 16 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