发现一个问题。我在一个实体业务类定义了一个数组。存放数据。在另一个页面调用的时候发现通过getDatalist()方法赋值到变量是空白的。可我直接通过对象访问属性。则其可以得到数组。可我的修饰是private。外部是不可以直接到用的吧。可能这里没理解深。
两个问题:
1.$row=$pageBean->datalist 为什么这样可以。我定义的是private类型的datalist
2.$row= $pageBean->getDatalist();为什么这里$row还是空的。这样不是把数组拷贝到$row里面了吗?
请指教。
//page1:
class pageBean {
private $dadalist = array();//存储数据集合
public function setDatalist($dadalist){
$this->datalist=$dadalist;}
public function getDatalist(){
//print_r($this->datalist);
return $this->dadalist;
}
}
//page2:
$pageBean = $outboxbiz->getoutboxPageBean($currentPage,$pageSize);
$currentPage=$pageBean->getCurrentPage();//调用类属性
$row=$pageBean->datalist;//此处不明:pageBean 类中的定义私用变量。
        //$row = $pageBean->getDatalist();//此处变量row得不到值。掉方法反而得到不数组。

解决方案 »

  1.   

    说说你的 $outboxbiz->getoutboxPageBean是什么
      

  2.   

    <?php
    //page1:
    class pageBean {
    private $datalist = array();//原先的名字写错了
    public function setDatalist($dadalist){
    $this->datalist=$dadalist; // 这里$this->datalist和原先上面的$dadalist不符合。 }
    public function getDatalist(){
    //print_r($this->datalist);
    return $this->datalist;
    }
    }
    ?>
      

  3.   

    2楼CunningBoy,正解。(一开始还感觉是不是很高深的问题。)
    楼主起得类变量名称好乱呀。为啥不用规范编码?这样还可以明确点,也方便自己看。
      

  4.   

    2楼眼犀利~敬礼
    楼主请用IDE 功力不够就乖乖用Eclipse NetBeans 不要尝试用VIM
    再者 我一看到xxxxBean就想到以前学习Java的悲惨岁月
    PHP从原理上就没有JavaBean的持久化功能 而且 PHP在编码风格上 即使是5.3 还是和面向对象的Java有很大区别的
    你这样写代码会很累 不如回去做jsp实在 最后一句 这里只有array 所有数据结构都可以用他模拟完成 如果你还要坚持 vector linkedlist这些结构的话 你很难学好PHP
      

  5.   

    不好意思各位,小弟刚刚学PHP,也是刚刚从java转到php。所以命名按照JAVA那样。可能习惯了。现在在努力改。谢谢各位指点。
     我仔细看了看。没发现那里写错了呀。我那个数组不就是$datalist 我设置值的时候也 是这样呀。还往多多指教。谢谢。麻烦在解释一下第一个问题。谢谢各位啊。