类中的php-pdo+显示返回数组的最佳方法


php pdo in class + best method to display return array

我有以下类:

<?php
class photos_profile {

  // Display UnApproved Profile Photos
  public $unapprovedProfilePhotosArray = array();
  public function displayUnapprovedProfilePhotos() {
    $users = new database('users');
    $sql='SELECT userid,profile_domainname,photo_name FROM login WHERE photo_verified=0 AND photo_name IS NOT NULL LIMIT 100;';
    $pds=$users->pdo->prepare($sql); $pds->execute(array()); $rows=$pds->fetchAll();
    $unapprovedProfilePhotosArray = $rows;
    echo 'inside the class now....';

    foreach($rows as $row) {
      echo $row['userid'];
    }
    }
}

我可以成功地显示foreach循环中的数据。

这是一个如下调用的类,希望能够在显示/视图代码中使用数组。这就是为什么我添加了"$unsuprovedProfilePhotosArray=$rows;",但它不起作用。

  $photos_profile = new photos_profile;
  $photos_profile->displayUnapprovedProfilePhotos();
      <?php
        foreach($photos_profile->unapprovedProfilePhotosArray as $row) {
          //print_r($photos_profile->unapprovedProfilePhotosArray);
          echo $row['userid'];
        }
      ?>

对我来说,获取PHPPDO返回数组并在视图中使用它的最佳方式是什么(从类对象返回)。我可以循环遍历所有值并填充一个新数组,但这似乎太过分了。

让我知道我是否应该更好地解释这一点。

thx

我认为您缺少$this->部分。因此,基本上,您在名为unprovedProfilePhotosArray的方法中创建了一个局部变量,该变量在方法完成时消失。如果您希望该数组保留在属性中,那么您应该使用$this->,这是访问该属性的正确方式。

...
$pds=$users->pdo->prepare($sql); $pds->execute(array()); $rows=$pds->fetchAll();
$this->unapprovedProfilePhotosArray = $rows;
...