Бывают ситуации когда в приложении необходимо передать какую-то переменную или объект в какое-то место, а делать это через передачу параметров нехочется. Глобальные переменные это дурной тон(засоряют глобальное пространство имен), поэтому их не рассматриваем.

Рассмотрим пример в котором у нас один класс создает подключение к базе данных, а другой класс это подключение использует.

К объектам классов, которые реализуют интерфейс 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.