Бывают ситуации когда в приложении необходимо передать какую-то переменную или объект в какое-то место, а делать это через передачу параметров нехочется. Глобальные переменные это дурной тон(засоряют глобальное пространство имен), поэтому их не рассматриваем.
Рассмотрим пример в котором у нас один класс создает подключение к базе данных, а другой класс это подключение использует.
К объектам классов, которые реализуют интерфейс Countable, можно применять функцию count(). Для этого в классе надо реализовать всего один метод с весьма с оригинальным названием: count()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class A implements Countable { private $_Vars; function __construct() { $this->_Vars = array(1,3,5,7,11,13); } function count() { return count($this->_Vars); } } $Obj = new A(); echo count($Obj); //Выведет 6 |
В методе count можно возвращать любое целое число больше нуля, впрочем если вы настаиваете, то ноль тоже можно возвращать. Это может быть количество свойств класса или кол-во свойств класса являющихся массивами…вообщем все что вам взбредет в голову или нужно для конкретных целей
В php есть возможность выборочно подавлять вывод ошибок безо всякой обработки этих ошибок. Для этого надо поставить собаку(@) перед вызовом функции. Например если вы пытаетесь удалить элемент массива и вам наплевать существует ли он, можно воспользоваться следующей формой записи:
1 | @unset($MyArray[28]); |
В случае возникновения ошибки, php молча продолжит работу.
Вообще такое подавление ошибок (без их обработки) считается дурным тоном и вызвано(как правило) отсутствием опыта в разработке. Код содержащий подавления иногда может быть очень тяжело отлаживать, т.к. нет никаких намеков на то, где и какая ошибка возникает. Большинство программистов, обнаруживших в коде такую красоту, захотят разбить вам за нее голову.
Интерфейс ArrayAccess, как и следует из его названия, позволяет обращаться к объектам как к массивам. Для того чтобы эта возможность стала доступна, придется реализовать 4 метода этого интерфейса.
offsetExists($Offset)
Этот метод вызывается только в двух случаях: когда к объекту применяется функция isset или empty. Пример:
1 2 | if (isset($Obj['key'])) echo "IsSet"; if (empty($Obj['key'])) echo "Empty"; |
Продолжаем обзоры инструментов веб-резработчка. На этот раз поговорим о FTP менеджере. FTP менеджер незаменимая вещь, если нужно скачать\закачать файлы на удаленный сервер. На этом поприще несомненно лидирует FileZilla.