Articles of oop

Как использовать $ db из другого .php для другого класса .php с помощью OOP?

Я новичок в OOP PHP, и я работал с процедурным API с тех пор, как начал веб-разработку, поэтому мне трудно переноситься в ООП. поэтому, допустим, у меня есть четыре файла .php и структуры ниже. connection.db.php <?php define("DB_HOST", "127.0.0.1"); define("DB_USER", "root"); define("DB_PASS", ""); define("DB_NAME", "sample_db"); $db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); echo (!$db->connect_error) ? NULL […]

Невозможно вывести многомерный массив

Я не могу получить какой-либо вывод из моего многомерного массива. Я пытаюсь получить мои данные с помощью метода push_array. Я хотел бы получить свой результат как: Джон, 1001 Том, 1002 Джерри, 1003 Сара, 1004 Однако я не получаю никакой информации. Я знаю, что массив работает, хотя я получаю следующий вывод, когда я эхо-сообщение $ message […]

typehinting: метод должен принимать любой $ arg, являющийся объектом

У меня есть класс «Коллекция», который имеет метод добавления. Метод add должен принимать только объекты. Итак, это желаемое поведение: $x=5;//arbitrary non-object $obj=new Foo; //arbitrary object $collection=new Collection; $collection->add($obj); //should be acceptable arg, no matter the actual class $collection->add($x); //should throw an error because $x is not an object Согласно руководству PHP, можно ввести методы typehint, […]

Можно ли сделать класс / объект для таблицы базы данных?

Я – сайт-строитель, у меня есть несколько таблиц, и нормально ли всегда создавать класс и создавать один его объект на основе этой таблицы? У меня есть таблица- учитель (ID, USERNAME), а класс, основанный на нем, получил giveMark() , editMark() и т. Д. Другой – это таблица учеников (ID, NAME), с getMarks() , getMissingHours() и т. […]

Почему мы должны использовать статические вызовы в PHP?

Почему мы должны использовать статические переменные или статические вызовы для статических методов в PHP5? Может быть, улучшить производительность?

Противоположность объектно-ориентированной?

К сожалению, я работаю с очень грязным программным обеспечением, написанным человеком, который не знает много программирования. Это не объектно-ориентированное, и автор фактически перенаправляет людей между файлами, чтобы выполнять разные скриптовые функции. Целые страницы заключены в операторы if / else. Каждый файл имеет свой собственный метод соединения SQL, у каждого есть свое собственное, и хорошо – […]

Есть ли способ переназначить $ this?

Прежде всего, я не хочу расширять класс. В идеале я бы хотел сделать это. public function __construct() { /* Set Framework Variable */ global $Five; $this =& $Five; } У меня есть система, в которой переменная $ Five является классом контейнера, который содержит другие библиотеки. Я мог бы назначить это локальной переменной Five … ie […]

Как создать метод, который вызывается каждый раз при вызове публичного метода?

Как создать метод, который вызывается каждый раз при вызове публичного метода? Вы также можете сказать, что это вызов-метод-вызов. Мой текущий код: <?php class Name { public function foo() { echo "Foo called\n"; } public function bar() { echo "Bar called\n"; } protected function baz() { echo "Baz called\n"; } } $name = new Name(); $name->foo(); […]

Адаптация метода select для приема более одного параметра

Мне нужно реализовать метод select() который может связывать один или несколько параметров и другой метод, который возвращает результат в index.php. Требуемый код, вызываемый из index.php: echo $this->_results -> korisnik_id; это класс базы данных, которому необходимо реализовать select() . текущая функция Select() принимает один параметр … DB::getInstance() -> Select('SELECT korisnik_id FROM korisnici WHERE korisnik_ime= ?', 's', […]

Проблема структуры PHP OOP, имитировать множественное наследование

У меня есть электронный магазин с несколькими типами продуктов. И я бы подумал о следующей структуре Cart_Item — Cart_Product — Cart_Download Order_Item extends Cart_Item — Order_Product — Order_Download Проблема в том, что я хочу, чтобы Order_Product расширил Order_Item и Cart_Product. Это связано с тем, что для метода Order_Item (получить цену от Order not from product) […]