如何将存储在对象中的值转换为数组

时间:2011-07-14 12:23:01

标签: php

这是我的代码:

   class Sub extends DatabaseObject {

  protected static $table_name="subs";
  protected static $db_fields=array('id', 'product_id', 'col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', 'col8', 'col9', 'col10', 'col11', 'col12');

  public $id;
  public $product_id;
  public $col1;
  public $col2;
  public $col3;
  public $col4;
  public $col5;
  public $col6;
  public $col7;
  public $col8;
  public $col9;
  public $col10;
  public $col11;
  public $col12;

我的find_subs_on($product_id)函数调用另一个函数,将值传递给上面的公共变量。

我的问题是我想在表格中显示上面的值,每个col都在<td>

我是否在类中创建了一个函数,它接受这些值并返回一个数组,然后我预先知道数组?

我是否在视图中创建了一个数组,并传入$sub->col1$sub->col2等?

我很乐意,如果有人可以指出一个正确的方法来做到这一点的例子。非常感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

您可以在对象上使用foreach,但如果您愿意,可以将对象强制转换为数组:

 $obj = new ClassName;
 $obj_to_array = (array) $obj;
 print_r($obj_to_array);

答案 1 :(得分:1)

<?php
  class test
  {
      function get_variable($var)
      {
          return $this->$var;
      }

      function set_variable($var, $value)
      {
          private $this->$var = $value
      }
  }

  $test = new test;
  $test->set_variable("foo", "bar");
  $variable = $test->get_variable("foo");
?>

或更容易,但不好

<?php
  class test
  {
  }

  $test = new test;
  $test->foo = bar;
  $variable = $test->foo;
?>

答案 2 :(得分:1)

这可能就是您所需要的:get_object_vars($object)

注意:仅导出公共变量和设置变量