2016-05-15 4 views
-2

пример (как я):Php, как получить параметры в виде строки

$this->method ('1', 2, array(1,2,3), $this); 

function method() 
{ 

в method(), я хочу, чтобы получить параметры так же, как я получил их. Я мог бы использовать это:

foreach (func_get_args() as $item) 

но это не хорошо в этот раз. Я просто хочу получить эту строку:

'1', 2, array(1,2,3), $this 

есть ли способ?

+3

почему вы не передавать их в виде строки?, Как '$ this-> метод ('\' 1 \ ', 2, array (1,2,3), $ this'); ' –

+0

передать их как строку или самостоятельно построить строку. $ s = ""; и в цикле for $ s. = $ item; –

+0

Нет никакого способа, так как во время выполнения, что «строка» больше не существует. PHP использует компилятор, который преобразует скрипт в байтовый код. Исходное обозначение теряется на этом этапе. – arkascha

ответ

0

Это приблизительное значение. Вы можете открыть файл кода для чтения и получить строку, содержащую код. debug_backtrace() дает вам стек вызовов с необходимой информацией, например. имя файла кода, строку и имя вызова функции.

<?php 
function test() 
{ 
    $trc = debug_backtrace(); 
    var_dump($trc); //See here what information you can obtain. 
    //var_export($trc[0]['args']); 
    echo preg_replace('~^\[(.*)]$~', '$1', json_encode($trc[0]['args'])); 
} 

test('1',2, array(1,2,3), 'some string'); 
?>  

"1", 2, [1,2,3], "некоторая строка"

Смежные вопросы