Существует ли функция PHP, которая может выйти из regex шаблонов, прежде чем они будут применены?

Я просто скопирую с Википедии:

Библиотека:

библиотека А является набором подпрограмм, или классы раньше разрабатывали программное обеспечение. Библиотеки содержат код и данные, которые предоставляют услуги независимым программам. Это позволяет коду и данным быть совместно использованным и измененными модульным способом.

Платформа:

платформа программного обеспечения А, в программировании, является абстракцией, на которой общий код, обеспечивающий универсальную функциональность, может быть выборочно переопределен или специализирован пользовательским кодом, обеспечивающим определенную функциональность. Платформы подобны библиотекам программного обеспечения в этом, они - reuseable абстракции кода, обернутого в четко определенный API. В отличие от библиотек, однако, поток полной программы управления не диктует вызывающая сторона, но платформой. Эта инверсия управления является отличительным признаком платформ программного обеспечения.

SDK:

комплект разработчика программного обеспечения А (SDK или "devkit") обычно является рядом средств разработки, который позволяет разработчику программного обеспечения создавать приложения для определенного пакета программного обеспечения, платформы программного обеспечения, аппаратной платформы, компьютерной системы, игровой приставки, операционной системы или подобной платформы. Это может быть что-то столь же простое как интерфейс прикладного программирования в форме некоторых файлов, чтобы взаимодействовать через интерфейс на конкретный язык программирования или включать усовершенствованное аппаратное обеспечение для передачи с определенной встроенной системой. Общие инструменты включают средства для отладки и другие утилиты, часто представляемые в IDE. SDKs также часто включают пример кода и поддерживающий технические примечания или другую сопроводительную документацию, чтобы помочь прояснить мысли от основного ссылочного материала.

Так:

  • Библиотека является кодом, который называет Ваше приложение.
  • Платформа является приложением или библиотекой, которая является почти готовой. Вы просто заполняете некоторые пустые места со своим собственным кодом, который называет платформа.
  • SDK является большим понятием, поскольку он может включать библиотеки, платформы, документацию, инструменты, и т.д.
  • .NET действительно больше похожа на платформу, не платформу программного обеспечения.
157
задан Mark Amery 21 September 2015 в 22:23
поделиться

1 ответ

Справочная информация: Вы просили «простое объяснение», которое предполагает:

  1. Вам нужен серьезный обзор без жаргона
  2. Вы хотите что-то, что поможет вам учиться с самого начала
  3. Вы обнаружили, что ни один человек не ответит на вопрос, так же , и это сбивает с толку. Вот почему вы просите здесь простого объяснения. Да?

Краткий ответ без жаргона:

  1. Многие вводные объяснения быстро переходят к примерам «ООП реального мира». Это может больше сбивать с толку, чем помогать, поэтому пока не стесняйтесь игнорировать это.
  2. Вы можете думать об исходном коде просто как о «фрагментах» функциональности, которые случайно сохраняются в отдельные файлы.
  3. Есть различные способы организации этих «блоков»; в зависимости от таких вещей, как условные обозначения языка программирования, опыта и подготовки разработчика (ов), или просто старые личные предпочтения.
  4. ООП и процедурное программирование - это просто две основные, общепризнанные методологии организации и упорядочивания этих «фрагментов» кода.

Длинный ответ без жаргона:

Процедурные. vs ООП - лишь один из аспектов фундаментальной проблемы компьютерного программирования: как сделать ваш код простым для понимания и просто профессионально поддерживать . На самом деле вы можете написать «процедурный» код, который следует некоторым принципам ООП, поэтому эти два понятия не обязательно противоположны.

Ваше понимание действительно возрастет, когда вы изучите другие объектно-ориентированные языки программирования , среди которых а PHP - это «новичок на пороге».

Вот краткий обзор того, что вы узнаете по мере накопления опыта: методов и свойств

  • методы - это просто функции, которые логически связаны друг с другом определенным образом. Слова "метод" и "функция" в основном представляют собой два разных термина для одного и того же.
  • свойства - это просто значения данных, которые связаны с классом. Это значения, которые намеренно не изолированы для какой-либо отдельной функции, потому что более чем одна функций в классе должны иметь доступ к ним.
    • Например : если в вашем классе есть несколько методов для выполнения астрономических задач, свойства класса могут быть значениями некоторых известных чисел, о которых должны знать все методы астрономии (например, Пи, скорость света, расстояние между конкретными планетами и т. д.).
  • Это , где большинство объяснений ООП сбивают с толку , потому что они переходят в " примеры реального мира ", которые могут быстро получить не по теме . Часто «реальный мир» является эвфемизмом для онтологических перспектив конкретного человека. Как правило, это полезно только тогда, когда вы уже понимаете концепцию достаточно хорошо, чтобы научить ей кого-то другого.
  • Чтобы понять ООП без путаницы, вы можете пока пропустить примеры из «реального мира» и просто сосредоточьтесь на коде. Класс - это просто способ хранить функции (также известные как методы) и свойства (также известные как данные) в виде кода PHP в одном или нескольких связанных «фрагментах» , где каждый отдельный «кусок» имеет дело с определенной темой или функциональностью. Это все, что вам нужно знать, чтобы начать работу.
  • Класс полезен, потому что он позволяет вам организовать ваш код на очень высоком уровне таким образом, чтобы вам было легче понять, использовать и поддерживать.

  • Когда кто-то написал много функций и организовал их в множество классов и заставил их работать вместе каким-то классным способом, они упаковывают все вместе и называют это «Фреймворк» .
  • Фреймворк - это просто следующий по высоте уровень «разбиения на части»

    preg_quote () принимает str и помещает обратная косая черта перед каждым символом это часть регулярного выражения синтаксис. Это полезно, если у вас есть строка времени выполнения, которую вам нужно сопоставить в некотором тексте, и строка может содержат специальные символы регулярного выражения.

    Специальное регулярное выражение символы: . \ + *? [^] $ () {} =! <> | : -

    Параметры

    str

    Входная строка.

    delimiter

    Если указан необязательный разделитель, он также будет экранирован. Это полезно для экранирования разделителя, который требуется для функций PCRE. / Является наиболее часто используемым разделителем.

    Важно отметить, что если аргумент $ delimiter не указан, разделитель - символ, используемый для заключения вашего регулярного выражения, обычно косая черта ( / ) - не экранируется. Обычно вам нужно передать любой разделитель, который вы используете с регулярным выражением, в качестве аргумента $ delimiter .

    Пример - использование preg_match для поиска вхождений данного URL, окруженных пробелами:

    $url = 'http://stackoverflow.com/questions?sort=newest';
    
    // preg_quote escapes the dot, question mark and equals sign in the URL (by
    // default) as well as all the forward slashes (because we pass '/' as the
    // $delimiter argument).
    $escapedUrl = preg_quote($url, '/');
    
    // We enclose our regex in '/' characters here - the same delimiter we passed
    // to preg_quote
    $regex = '/\s' . $escapedUrl . '\s/';
    // $regex is now:  /\shttp\:\/\/stackoverflow\.com\/questions\?sort\=newest\s/
    
    $haystack = "Bla bla http://stackoverflow.com/questions?sort=newest bla bla";
    preg_match($regex, $haystack, $matches);
    
    var_dump($matches);
    // array(1) {
    //   [0]=>
    //   string(48) " http://stackoverflow.com/questions?sort=newest "
    // }
    
  • 250
    ответ дан 23 November 2019 в 21:45
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: