作者icybleach (哞~)
看板PHP
标题[请益] 关於物件阵列
时间Sat May 19 20:20:44 2007
想请教关於物件阵列的问题
物件宣告如下
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)
1F:推 JoeHorn:为何不是把阵列放进物件,而是把物件作成阵列? O_o 05/20 12:13
2F:推 icybleach:感谢!真是一语惊醒梦中人啊… 05/20 14:47
3F:→ icybleach:还是想请问一下,为什麽不能将物件放进阵列呢? 05/20 14:47
4F:推 blackbing:PHP的阵列不是本来就可以放任何东西了吗@@? 05/20 14:55
5F:推 icybleach:我也这麽想…可是做不出来@@ 05/20 16:57