数组元素是类的对象,每个元素赋不同的值,为何调用该数组时,每个元素的组都成为最后一个元素的值了??

yangwenlan 2005-12-28 10:19:24
我在php中定义了一个类:
class DhcpStatic{
var $deviceId;
var $idx;
var $macAddress;
var $ipAddress;
}然后我定义了10个对象,这是个对象是一个数组:
$obj[1] = new DhcpStatic();
$obj[2] = new DhcpStatic();
........
$obj[10] = new DhcpStatic();
将其赋值:
for($i=1;$i<=10;$i++){
$obj[i]->deviceId = 7;
$obj[i]->idx = $i;
$obj[i]->macAddress = $_POST["mac".$i];
$obj[i]->ipAddress = $_POST["ip".$i];
}表单名分别为mac1,ip1;.....mac10,ip10;
在以后的调用中,我想直接调用数组,用$obj,为何10个数组元素的值都为最后一个元素的值了?
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangwenlan 2005-12-28
  • 打赏
  • 举报
回复
不是7,是$obj[$i]->deviceId
yangwenlan 2005-12-28
  • 打赏
  • 举报
回复
不好意思,写错了!是这样的:
$obj[$i]->deviceId = 7;
$obj[$i]->idx = $i;
$obj[$i]->macAddress = $_POST["mac".$i];
$obj[$i]->ipAddress = $_POST["ip".$i];
我将页面上得到的这些值想添加到数据库时用:
for($i=1;$i<=10;$i++){
$strsql="INSERT INTO DhcpStatic(id,deviceId,idx,macAddress,ipAddress) VALUES('','7','$obj[$i]->idx','$obj[$i]->macAddress','$obj[$i]->ipAddress')";
$result=mysql_query($strsql) ;
if(!$result){echo"failed to insert record $i, try it later!"."<br>";}
else {echo "insert record $i successful!"."<br>";}
}
为何老是添加失败??在上面循环体里面这些值如 :$obj[$i]->macAddress,...都是能够打印的


leihome 2005-12-28
  • 打赏
  • 举报
回复
纯属误伤
xuzuning 2005-12-28
  • 打赏
  • 举报
回复
咦,$obj[i]->deviceId = 7;
$到哪去了?
$obj[$i]->deviceId = 7;
xuzuning 2005-12-28
  • 打赏
  • 举报
回复
不会的!
你是怎样调用的?
xuzuning 2005-12-28
  • 打赏
  • 举报
回复
strsql="INSERT INTO DhcpStatic(id,deviceId,idx,macAddress,ipAddress) VALUES('','7','{$obj[$i]->idx}','{$obj[$i]->macAddress}','{$obj[$i]->ipAddress}')";
用花括号将对象及其属性括起来,告诉php这是一个值。否则php会当成几个分量处理
也可以把$obj[$i]->idx放在双引号外面用"."连接

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧