ФорумПрограммированиеПыхнуть хотите?Готовые решения → goDB — библиотека работы с MySQL

goDB — библиотека работы с MySQL

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 23 декабря 2015 г. 13:44, спустя 33 минуты 21 секунду

    @Kosteash, ещё нюанс, ты неправильно описываешь параметры своего класса. правильно - это чтобы твой класс _расширял_ интерфейс родительского класса, но не изменял.

    пример:

    
    class Animal { // некий класс, реализующий некую функциональность
        function __construct($name){
            $this->name = $name;
        }
    
        function respondToName($name){
            return $name === $this->name; // отзывается на кличку
        }
    
        function voice(){
            return null; // прототип жывотного не издаёт звуков
        }
    }
    
    $my_animal = new Animal('Charlie'); // объект ведёт себя как инстанс класса Animal
    if ($my_animal->respondToName('Charlie')){
      $my_animal->voice(); // и делает то, что нам нужно
    }
    
    
    // мы решили улучшить базовый класс и расширили его своим.
    class Dog extends Animal {
        function __construct($name, $color = 'black'){
            parent::__construct($name);
            $this->color = $color;
        }
    
        function voice(){
            return 'Gav-gav!';
        }
    }
    
    // новый класс должен быть реализован так, что когда мы подставим его в прежний код - он не вызовет несовместимости интерфейсов
    $my_animal = new Dog('Charlie'); // как передавали первым аргументом кличку животного, так и передаём, код не ломается
    if ($my_animal->respondToName('Charlie')){
      $my_animal->voice(); // и делает то, что нам нужно
    }
    
    не всё полезно, что в swap полезло
  • Kosteash

    Сообщения: 20 Репутация: N Группа: Кто попало

    Spritz 29 декабря 2015 г. 16:53, спустя 6 дней 3 часа 9 минут

    @master, так то теория ясна, но с реализацией сложновато )) Но все равно спасибо !

    Теперь у меня проблема с плейсхолдером ?set . Он не хочет определиться как массив, а определяется как число integer ;( хотя вроде у меня числа там нету

  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 29 декабря 2015 г. 17:15, спустя 21 минуту 55 секунд

    ХОТЯ ВРОДЕ

    debug

    все умрут, а я изумруд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!