台灣最大程式設計社群網站
線上人數
944
 
會員總數:246087
討論主題:189663
歡迎您免費加入會員
討論區列表 >> PHP >> function裡取傳入的物件值
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
function裡取傳入的物件值
價值 : 30 QP  點閱數:1026 回應數:4
樓主

jacobcan
初學者
1 55
692 75
發送站內信

請問各位我有一個function會傳入一個物件如下面object A, 如果我想在這function裡只將物件裡的字串值存入function裡$ret裡, 我除了在function裡轉換成字串(如寫法1)或是傳入前轉換成字串(如寫法1), 還有別種寫法能夠直接取得物件的字串值嗎?因為如果我有四五個變數值要傳入,每個都要轉,降不是看起來很不對. 謝謝


=======
objectA:
object(SimpleXMLElement)#566 (1) {
[0]=>
string(9) "input string"
}

想得到

array(1) {
["input"]=>
string(9) "input string"
}

寫法1
function AryPass($input = "")
{
$ret = array (
"input" => (string)$input
);
return $ret;
}
$ret = AryPass($objectA);

寫法2
function AryPass($input = "")
{
$ret = array (
"input" => $input
);
return $ret;
}
$ret = AryPass((string)$objectA);


搜尋相關Tags的文章: [ function 字串轉換 ] ,
本篇文章發表於2014-02-25 08:10
1樓
最有價值解答

LaLa
檢舉此回應
你的物件內容值是 [0]=> string(9) "input string"
它是以"數值"做為index,不是用字串做index,
不管你花多少心力要用字串("input")當index,做提取動作,都會取不到,因為根本就沒有這個index,你要它怎麼給你值呢?

另,你的觀念有點怪。
若是要輸出,應當是在物件裡寫function(此function隸屬在物件裡),透過物件呼叫function的方法取得你要的值。
ex: 在objectA之下,寫一個function 名叫GetData,然後使用objectA->GetData(xxxx);的方法呼叫
而不是將物件外用funciton去解析這個物件裡的東西...

最後,請善用程式排版,在編輯文字的地方(也就是提問的地方)有很多code的按鈕(ex: c,js,vb,HTML,php,sql),讓別人可以更清楚的看你貼上的code。
本篇文章回覆於2014-02-25 15:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

jacobcan
檢舉此回應
抱歉, 應該是我問法有點誤導了方向. 我的ObjectA是從一個xml檔有得到的資訊. 我想用那些資訊在一個function裡建立一個新的array, ($ret) 而那個function是在一個class裡. 因為從xml檔讀出後都為object, 但我只想取object裡的值存到array裡所以想知道如何處理比較好, 不處理會$ret 會變成 code 1, 而我想得到code 2
code 1

code 2
本篇文章回覆於2014-02-25 22:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

LaLa
檢舉此回應
依你最原始貼的結果來看,你的來源很奇怪,

後面的#571代表是resource的代號,(1)代表裡面的tag只有一個。
你的xml裡奇怪的地方,tag竟然是"0",也就是說你的xml的內容是長這樣的
<0>xxxxxxxxxx</0>

另,我想你最終要的是在取得結果的內容吧,所以無需 "用那些資訊在一個function裡建立一個新的array,"(複雜化了)
提供你simplexml_load_string的用法,



若是xml內容裡是多"組",則使用attributes的方法取出成陣列。
可google simplexml_load_string attributes,有很多範例,就不再累述。


本篇文章回覆於2014-03-03 16:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

jacobcan
檢舉此回應
Hi:
感謝. 我所有input大部分會如下面objectA的型式. 會從整各program 得到或從xml得到.再拿到這些值後, 會需call function. 如下面function api. 在 function api裡有些值要求為整數或string. 所以我會有一個問題就是除了code a 和code b以外. 我最佳的寫法應該為何?因為如果不轉, 傳進function api會是以物件型式傳入寫存入array $p裡 有辦法直接取objectA裡的值嗎? 謝謝

本篇文章回覆於2014-03-04 12:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.