Различные вопросы по PHP и MySQL

243K
.
Абстрактный класс отличается от интерфейса лишь
тем, что в нём можно реализовывать методы.


Ну, абстрактный класс отличается от интерфейса ещё, например тем, что интерфейс - это, в общем-то, вообще не класс. Интерфейс - это своего рода контракт, который должен быть исполнен тем кодом который его принимает.

Ну и говорить о том, что там вот методы, а там не только методы - глупо, т.к есть ЯПы где интерфейс может описывать не только методы или, даже, иметь возможность реализовывать функционал.
.
L!MP, Да я как бы не претендую на истину в последней инстанции. Если отходить от пыха, то тут долго можно ещё обсуждать всё это.
.
Понимать абстрактные классы лучше всего буквально и вообще не лезть в сравнения их с интерфейсами.

Абстрактность. Абстрактное понятие о чем либо.
Вот, например, девушка-блондинка. У неё есть абстрактное представление о двигателе внутреннего сгорания - она знает что он умеет работать (грубо говоря, у него есть функция ВКЛ.) и то что ему для этой работы нужно топливо (т.е функция заправки).
Вот вам и абстрактный класс.
.
Сексуальность валенка
Koenig, Да, так и сделаю
Бо неохото мне пока еб**ь свой мозг и так сегодне целый день с кодом работал надо отдохнуть
----
О обстракных классах я только пока буду читать и то не уверен бо чесноговоря меня вовсе к ним не тянет
.
Swank
Сексуальность валенка
Koenig, Щас вот продолжил писать блог, до этого отдыхал бо запарился портитовать диз с ворд пресса.
Правильно ли я написал?
<?php

class DB {
    private static $instance = null;
 
    private function __construct(){}
    private function __clone(){}
    private function __wakeup(){}
 
    public static function getInstance() {
        if(is_null(self::$instance)) {
            self::connect();
        }
        return self::$instance;
    }
    
     public static function connect() {
         
         # Данные от бд
         $dbcfg = [
          'host' => 'localhost',
          'name' => 'myblog',
          'user' => 'root',
          'pass' => ''
         ];
         $opt = [
             PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
             PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
         ];
         if(!self::$instance)
            self::$instance = new PDO("mysql:host=".$dbcfg['host'].";dbname=".$dbcfg['name'], $dbcfg['user'], $dbcfg['pass'], $opt);
     }

     public static function prepare($sql, $values = null) {
         $sth = self::$instance->prepare($sql);
         $sth->execute($values);
         return $sth;
     }

     public static function lastId() {
        return self::$instance->lastInsertId();
     }
}
.
(\/)____o_O____(\/)
Swank, наследовать пдо наверное надо еще
.
Think different
# Koenig (29.04.2015 / 16:19)
Swank, наследовать пдо наверное надо еще
Зачем? О_О
.
Сексуальность валенка
Koenig, Оно не будет так работать
.
(\/)____o_O____(\/)
Folour, а так голый синглтон по сути, который просто отдает экземпляр пдо
.
Think different
# Koenig (29.04.2015 / 17:42)
Folour, а так голый синглтон по сути, который просто отдает экземпляр пдо
А что измениться, если он унаследует PDO ?
Всего: 7969