2014-01-07 1 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 обновил вопрос, чтобы показать, что мне нужно напечатать несколько слов + возвращаемые значения fucntion –

+2

concatenate :)) –

ответ

6

можно вызывать только переменные внутри строки

, но если вы используете {} вы можете добавить код к блоку

попробовать это:

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

Это применимо только к переменным-членам (со стрелкой '->'), глобальная функция не может. – Abdillah

2

Попробуйте это путь

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>'; 

Обратите внимание, что вы можете даже пройти к этому В параметре вызова.

+0

Это полезно знать, но на самом деле не отвечает на вопрос. Веселый зимний баш! – wizzwizz4