php类,将变量传递给函数,引用变量

时间:2011-03-22 10:23:22

标签: php class reference

我有一个类,它可以引入Twitter提要并将它们合并,将它们放入一个数组中,进行排序和组合。然后我需要将“发布”时间从unix转换为人类。

在我的班级构造中,我有:

function __construct($inputs) {     

             $this->inputs = $inputs;
             $this->mergeposts();
             $this->sortbypublished($this->allPosts,'published');
             $this->unixToHuman('problem here');
             $this->output();
     }

SortbyPublished是

        function sortbypublished(&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
    $sorter[$ii]=$va[$key];
}
arsort($sorter);
foreach ($sorter as $ii => $va) {
    $ret[$ii]=$array[$ii];
}

    $this->sorted = $ret;

}

unixToHuman是:

public function unixToHuman($unixtime) {
            $posts['published'] =   date('Y-m-d H:i:s', $unixtime);
            }

我的问题是我无法解决我需要进入的问题:

$this->unixToHuman('HERE');

我认为部分原因是由于我对PHP术语缺乏了解,这使得很难在手册中找到任何内容。我试图引用'已发布'数组吗?

我需要的是正确的版本:

$this->sorted['published']

我希望这有意义,任何帮助,尤其是术语非常感谢。

2 个答案:

答案 0 :(得分:1)

看起来unixToHuman想要一个时间戳。所以你可以使用date(),或者你想要转换成人类可读时间的时间戳。

$this->unixToHuman(date());

答案 1 :(得分:0)

首先,unixToHuman方法需要返回一个值,所以让我们这样做:

public function unixToHuman($post) {
    $post['published'] =   date('Y-m-d H:i:s', $post['published']);
    return $post;
}

然后我们可以在__construct方法中一次传递一行:

foreach ($this->sorted AS $idx => $row) {
    $this->sorted[$idx] = $this->unixToHuman($row);
}