2012-01-05 17 views
0

我正在php java橋樑工作,並遇到了這個問題。 下面的是代碼回聲值是不同的時,該變量是通過在php

$payID  = $epaymentpipe->getPaymentId(); 

echo $payID; 

期望值例如印刷,5323423123

但是當我在標頭中傳遞相同的變量等的下方,對象ID傳遞payID。

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

它是通過像http://URL?PaymentID=Object編號53

我需要知道發生了什麼在這裏。當變量回顯正確打印,但是當我使用變量對象ID傳遞。

+0

你能發表整個代碼嗎? – 2012-01-05 06:55:34

+2

'var_dump($ payID)'給你什麼? – deceze 2012-01-05 06:56:21

+0

var_dump($ payID)爲我提供了對象數組 – 2012-01-05 07:22:44

回答

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

使用

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

,並報告了這個bug的PHP開發人員。

The。運算符應該使用$ object - > __ toString()將其參數轉換爲字符串。

請注意,這已被固定在PHP 5.3及以上!

1

角色對象爲字符串:

$payID = (string)$epaymentpipe->getPaymentId(); 
header("location: URL?PaymentID=".$payID); 
+0

沒有它只傳遞對象ID ... – 2012-01-05 07:25:20

0

回波的定義作爲該print_r的和的var_dump,每當任何這樣的事情發生通過的print_r或傾倒的var_dump它檢查該值的不同。

+0

我檢查它通過var_dump打印一個長對象數組 – 2012-01-05 07:29:26