Что за запись прототипа функции preg_replace в php manual?

Рейтинг: 0Ответов: 1Опубликовано: 12.12.2014
mixed preg_replace (mixed pattern, mixed replacement, mixed string [, int limit [, int &$count]] );

что это [, int limit [, int &$count]] ? Как понимать вообще такую запись?

Ответы

▲ 2Принят

@xinakapu

  1. необязательные параметры обозначаются квадратными скобками вокруг себя?
  2. А зачем тогда они вложены друг в друга? Я просто не видел вызов preg_replace с 5 аргументами или же его и нету с 5 аргументами, а они вкладываются в третий.
  3. Запятая как разделитель указывающий что есть ещё один параметр или же что-то ещё? А зачем такая реализация? Если вынести запятую вперед скобки, то следующий параметр же не станет массивом.
  1. Да.
  2. Если читать справа налево, становится ясно, что можно опустить либо только последний параметр, либо последний и предпоследний. Вариант с пропуском только предпоследнего - исключен. Попробуйте сократить скобки. Вычеркните визуально поочередно внешнюю и внутренние пары скобок. Вы не можете вычеркнуть предпоследний параметр, не порушив парность скобок. Возможно так станет понятнее.
    Как это не видели вызов с 5-ю аргументами? А как же упомянутая вами документация? По ссылке есть такой пример прямо в описании функции.
  3. Запятая внутри скобок указывает на то, что ЭТОТ параметр необязательный, а те, что ему предшествуют (до первой открывающейся квадратной скобки) — обязательные.