Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
Това не е обект, а се нарича функция/метод на класа. С други думи статична функция/метод. Това означава, че не е нужно да създаваш обект от тип database за да я използваш. Т.е. в случая $connect1 е резултата от изпълнението на статичната функция/метод neshto();$connect1 = database::neshto();
Тук вече $connect е обект от тип database и neshto() е функция/метод на обекта $connect$connect = new database();
$connect->neshto();
<?php
class MySQL{
public $query;
public $fetchedInfo;
public function __invoke($hostname, $name, $password, $database)
{
$connection = mysql_connect($hostname, $name, $password);
if(!$connection){
return new Error("Connection problem: " . mysql_error());
}
mysql_select_db($database);
mysql_query("SET NAMES utf8");
}
public function query($query){
$this->query = mysql_query($query) OR new Error("Query Error:" . mysql_error());
}
public function fetch($fetch){
$this->fetchedInfo = mysql_fetch_array($fetch) OR new Error("Query Error:" . mysql_error());
}
}
class Error{
public function __construct($string){
die($string);
}
}
$connect = new MySQL;
$connect("localhost","root","","db");
$connect->query("SELECT * FROM notes");
$connect->fetch($connect->query);
echo $connect->fetchedInfo['something'];
?>
public function fetch() {
$this->fetchedInfo = mysql_fetch_assoc($this->query);
return $this->fetchedInfo;
}
Уха, ти си бил много умен. Ами я дай същински ООП клас за връзка с БД, та да ме просветлиш в най-същинските тайни на прорамирането.relax4o каза:По-скоро е "ИЛИ". Това ти е процедурно писане на код вградено в клас с методи. Нищо от това, което си написал има смисъл, особено класа Error. Защо ти е такъв клас? Най-добре използвай изключения или връщай празни стойности.
Метода query е безМИСЛЕН. Най-добре връщай ресурса, който връща, вместо да го запазваш в свойство.
Така, както си го написал fetch метода би изглеждал по-добре така.
PHP:public function fetch() { this->fetchedInfo = mysql_fetch_assoc($this->query); return $this->fetchedInfo; }
Като цяло класа ти е безсмислен. По-добре се опитай да си го структурираш по-добре, като се опиташ да използваш същността на ООП.
shashma88 каза:Уха, ти си бил много умен. Ами я дай същински ООП клас за връзка с БД, та да ме просветлиш в най-същинските тайни на прорамирането.relax4o каза:По-скоро е "ИЛИ". Това ти е процедурно писане на код вградено в клас с методи. Нищо от това, което си написал има смисъл, особено класа Error. Защо ти е такъв клас? Най-добре използвай изключения или връщай празни стойности.
Метода query е безМИСЛЕН. Най-добре връщай ресурса, който връща, вместо да го запазваш в свойство.
Така, както си го написал fetch метода би изглеждал по-добре така.
PHP:public function fetch() { this->fetchedInfo = mysql_fetch_assoc($this->query); return $this->fetchedInfo; }
Като цяло класа ти е безсмислен. По-добре се опитай да си го структурираш по-добре, като се опиташ да използваш същността на ООП.
class RlxDatabase
{
private $_link,
$_args,
$_data = array();
public function __construct(){
$this->_link = mysql_connect(RlxConfig::conf('database.host'),
RlxConfig::conf('database.user'),
RlxConfig::conf('database.password'));
if($this->_link){
mysql_select_db(RlxConfig::conf('database.db'), $this->_link);
$this->query("SET CHARACTER SET " . RlxConfig::conf('database.charset'));
}
}
public function query($query)
{
return mysql_query($query, $this->_link);
}
Първо - има ли някъде използвано нещо глупаво?
И второ - въобще това ли е програмиране с обекти?(или все едно си програмирам като преди,а си мисля че ООП пиша)