[請益] 關於物件陣列
想請教關於物件陣列的問題
物件宣告如下
class Operation
{
var $tran_id;
var $w_r;
var $data_item;
function set_tran_id($argv)
{
$this->tran_id = $argv;
}
function set_w_r($argv)
{
$this->w_r = $argv;
}
function set_data_item($argv)
{
$this->data_item = $argv;
}
}
$op[] = new Operation; //在此宣告物件陣列
$opdata = chop($_POST['usersComments']); //消去多餘的空白
$opraw = explode("\n", $opdata); //將輸入的各行指令分開
$opnum = sizeof($opraw); //算出輸入指令的個數
$i = 0;
$j = 0;
$opt_cell = 0; //optemp的元素個數
$con_flag = 0;
for($i = 0; $i < $opnum; $i++)
{
$optemp = explode(" ", $opraw[$i]);//將指令中各元素分開
$opt_cell = sizeof($optemp); //算出指令中元素個數
if($opt_cell != 3)
{
echo "輸入錯誤!";
}
else
{
$op[$i]->set_tran_id($optemp[0]); //逐一輸入各指令的
$op[$i]->set_w_r($optemp[1]); //transaction id, W/R
$op[$i]->set_data_item($optemp[2]);//以及access data item
}
}
問題在最後迴圈輸入op[]的時候,輸入op[0]的時候過了
但輸入op[1]就出現error
Call to a member function set_tran_id() on a non-object
另外還有一個問題,
1.我將傳進來的資料多餘的空白消去,存進$opdata中
2.將每個指令分別存放進$opraw陣列裡面,
3.從$opraw陣列把裡面每一個指令用' '分開,放入$optemp陣列
$optemp = explode(" ", $opraw);
4.逐一放入op[$i]裡面,
Ex.
input
ab cd ed
aa bb cc
1.$opdata = ab cd ed\naa bb cc
2.$opraw[0] = ab cd ed
$opraw[1] = aa bb cc
3.迴圈第一次 4.
$optemp[0] = ab => op[0]->tran_id = $optemp[0]
$optemp[1] = cd => op[0]->w_r = $optemp[1]
$optemp[2] = ed => op[0]->data_item = $optemp[2]
迴圈第二次
$optemp[0] = aa => op[1]->tran_id = $optemp[0]
$optemp[1] = bb => op[1]->w_r = $optemp[1]
$optemp[2] = cc => op[1]->data_item = $optemp[2]
問題是當指令中空白超過一個,前面的chop()指令好像不work了
迴圈第二次時$optemp[0]照舊還是aa,但$optemp[1]就變成空白了
麻煩版上的各位解答了,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.18.90
※ 編輯: icybleach 來自: 163.22.18.90 (05/19 23:25)
推
05/20 12:13, , 1F
05/20 12:13, 1F
推
05/20 14:47, , 2F
05/20 14:47, 2F
→
05/20 14:47, , 3F
05/20 14:47, 3F
推
05/20 14:55, , 4F
05/20 14:55, 4F
推
05/20 16:57, , 5F
05/20 16:57, 5F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章