Значение эха отличается, когда эта переменная передается в PHP - PullRequest
0 голосов
/ 05 января 2012

Я работал в php java bridge и столкнулся с этой проблемой. Ниже приведен код

 $payID     =  $epaymentpipe->getPaymentId();

 echo $payID;

ожидаемое значение напечатано, например, 5323423123

но когда я передаю ту же переменную в заголовке, как показано ниже, идентификатор объекта передается в payID.

header("location: URL?PaymentID=".$payID);

это проходит как http://URL? PaymentID = Object id # 53

Мне нужно знать, что здесь происходит. Когда переменная отображается правильно, но когда я использую переменную, идентификатор объекта передается.

Ответы [ 3 ]

2 голосов
/ 07 января 2012
header("location: URL?PaymentID=".$payID);

Использование

header("location: URL?PaymentID=".((string)$payID));

и сообщите об этой ошибке разработчикам PHP.

. оператор должен преобразовать свои аргументы в строку, используя $ object -> __ toString ().

Обратите внимание, что это было исправлено в PHP 5.3 и выше!

1 голос
/ 05 января 2012

Приведите объект в виде строки:

$payID = (string)$epaymentpipe->getPaymentId();
header("location: URL?PaymentID=".$payID);
0 голосов
/ 05 января 2012

Определение echo отличается от определения print_r и var_dump, всякий раз, когда происходит такая вещь, проверяйте значение, сбрасывая его через print_r или var_dump.

...