Проблема с РНР
class Sql {
private $arrResult_rows;
....
public function query($sql) {
//здесь идет выборка из БД
...
$this->arrResult_rows = $res;
}
public function getRows() {
echo var_dump($this->arrResult_rows); // возвращает не пустой массив
return ($this->arrResult_rows);
}
}
class some {
...
function somefunc() {
...
$obj = new Sql();
$obj->query("SQLзапрос");
$arr = $obj->getRows();
echo var_dump($arr); //Возвращает NULL
}
}
Запрос выполняется корректно, передается не пустой массив и всё же, в классе some при вызове функции возвращается NULL. В чем тут может быть дело? :(
Заранее благодарен.
Смущает вот эта строка в методе Sql::query(): $this->arrResult_rows = $res;
Что написано выше? И что покажет var_dump($this->arrResult_rows); (в этом же методе)? У меня есть смутное предчуствие...
PS. Нельзя-ли уточнить, что скрывается под словами "// возвращает не пустой массив" в методе Sql::getRows() ? (впрочем, вопрос о том же, что и выше)
var_dump($this->arrResult_rows); возвращает нужное значение, тоже самое и в Sql::getRows(), var_dump перед return выводит нужное значение, т.е. метод Sql::getRows() возвращает правильное значение, только вот при вызове этого метода почему-то функция возвращает пустой массив. Пробовал так
public function getRows() {
...
return 123;
}
все работает.
странно, а
return ($this->arrResult_rows);
не работает, хотя var_dump($this->arrResult_rows); возвращает нужное значение:
public function getRows() {
...
var_dump($this->arrResult_rows);
return ($this->arrResult_rows);
}
что не так?
Я же не просто так спросил, что именно показывает var_dump($this->arrResult_rows); ... "Нужное значение" - ни о чём не говорит... Массив это, или ресурс. А может, ссылка на ресурс...