2013-10-13 6 views
1

Мне нужно передать массив из m.php обратно в index.php и цикл для печати каждой строки, но я не могу найти способ, как это сделать? любое предложение будет оценено.Как передать массив из класса

ниже кода я использую возвращаемые $ строк в m.php но index.php не может получить его ..

index.php

<?php 
require 'm.php'; 

$select_news = new select_news(); 
$select_news->select_3(); 
print_r($rows); 
foreach ($rows as $row){ 
?> 
<div><?=$row['id']?></div> 
... 
<?php 
} 
?> 

m.php

class select_news{ 
    public function select_3(){ 
     global $db; 
     $sth = $db->prepare('SELECT * FROM news ORDER BY id DESC LIMIT 3'); 
     $sth->execute(); 
     $rows = $sth->fetchAll(); 
      return $rows; 
    } 
} 
+0

только мысли, но это выглядит, как вы не присваивая результат переменной ... – ermagana

+1

Просто чтобы вы знали, почему это не сработало, это переменная область действия. В вашей функции select_3 вы используете $ rows, но эта переменная не видима ничем иным, кроме этой конкретной функции - это не глобальная переменная. Таким образом, в ваших index.php $ rows не определено, потому что это не та же переменная, что и $ rows в вашей функции класса! Таким образом, почему вам нужно присвоить возвращаемое значение переменной в index.php, как указывают ответы. – BrianHall

+0

@BrianDHall Спасибо! –

ответ

1

Просто присвойте значение этой функции вызову переменной ...

$select_news = new select_news(); 
$rows = $select_news->select_3(); 
print_r($rows); 
foreach ($rows as $row){ 
?> 
<div><?=$row['id']?></div> 
... 
<?php 
} 
?> 
+0

Спасибо! оно работает.. –

0

Чтобы преобразовать его в массив (если я правильно прочитал вопрос), вы можете поместить это прямо над вашим foreach заявление:

$rows = unserialize(serialize(json_decode(json_encode((array) $rows), 1))); 
Смежные вопросы