В настоящее время я программирую класс базы данных, который немного использует PHP-класс PDO, но я бы хотел добавить несколько простых функций, чтобы немного упростить программирование определенного приложения.
Теперь В следующем фрагменте псевдокода вы можете увидеть, куда я иду. Единственная проблема в этом примере состоит в том, что переменная $ result является объектом, который нельзя использовать для сравнения некоторых вещей, которые я делаю в дальнейшем в скрипте:
<code><?php
class Database
{
public function FetchRow ( $query )
{
// .. do some stuff, and make a $result variable
return DatabaseStatement ( $result );
}
}
class DatabaseStatement
{
private $result;
public function __construct ( $query )
{
// .. save result in property etc.
}
public function __get ( $column )
{
// .. check result item
return $this -> result [ $column ];
}
}
$db = new Database;
$result = $db -> Query ( 'SELECT * FROM users WHERE id = 1;' );
if ( $result != null ) // Here $result should be an array OR null in case no rows are returned
{
echo $result -> username; // Here $result should call the __get method
echo '<pre>' , print_r ( $result ) , '
'; // Здесь $ result должен быть массивом, потому что он еще не был нулевым
}
Как видите, переменная $ result не должна быть объектом, когда я выполняю сравнение, я знаю, что она может быть преобразована в строку с использованием __toString. Но я бы хотел, чтобы это был какой-то другой тип, в основном массив или ноль.
Как мне заставить что-то подобное работать, если это возможно (должно быть возможно, я думаю, слишком много хлопот)?
Так может кто-нибудь указать мне правильное направление, или, возможно, дать фрагмент кода, который должен работать, или я могу изменить, чтобы соответствовать моему текущему классу?