PHP

  1. http://git.php.net/?p=php-src.git&a=summary
  2. https://github.com/php/php-src
  3. https://wiki.php.net/vcs/gitworkflow
  4. https://secure.php.net/manual/en/doc.changelog.php
  5. https://eev.ee/blog/2012/04/09[..]actal-of-bad-design/
  6. http://www.phptherightway.com/
  7. http://www.phpthewrongway.com/

-> /Dev/Guidelines/CodeConventions

Quotes

Understand the difference between single and double quotes. Use whichever is more appropriate.

Indentation

Indentation should follow the logical structure of the code. Use real tabs not spaces.

Difference between isset empty is_null


Comparison Table


TEST Not Set NULL Zero FALSE Numeric Value Empty String
isset() bool(false) bool(false) bool(true) bool(true) bool(true) bool(true)
empty() bool(true) bool(true) bool(true) bool(true) bool(false) bool(true)
is_null() bool(true) bool(true) bool(false) bool(false) bool(false) bool(false)
== bool(true) bool(true) bool(true) bool(true) bool(false) bool(true)
=== bool(false) bool(false) bool(false) bool(true) bool(false) bool(false)

http://php.net/manual/de/types.comparisons.php


Special Sequences

    \w - Any “word” character (a-z 0-9 _)
    \W - Any non “word” character
    \s - Whitespace (space, tab CRLF)
    \S - Any non whitepsace character
    \d - Digits (0-9)
    \D - Any non digit character
    . - (Period) – Any character except newline

Meta Characters

    ^ - Start of subject (or line in multiline mode)
    $ - End of subject (or line in multiline mode)
    [ - Start character class definition
    ] - End character class definition
    | - Alternates, eg (a|b) matches a or b
    ( - Start subpattern
    ) - End subpattern
    \ - Escape character

Quantifiers

    n* - Zero or more of n
    n+ - One or more of n
    n ? - Zero or one occurrences of n
    {n} - n occurrences exactly
    {n,} - At least n occurrences
    {,m} - At most m occurrences
    {n,m} - Between n and m occurrences (inclusive)

Pattern Modifiers

    i - Case Insensitive
    m - Multiline mode - ^ and $ match start and end of lines
    s - Dotall - . class includes newline
    x - Extended– comments and whitespace
    e - preg_replace only – enables evaluation of replacement as PHP code
    S - Extra analysis of pattern
    U - Pattern is ungreedy
    u - Pattern is treated as UTF-8

Point based assertions

    \b - Word boundary
    \B - Not a word boundary
    \A - Start of subject
    \Z - End of subject or newline at end
    \z - End of subject
    \G - First matching position in subject

Assertions

    (?=) - Positive look ahead assertion foo(?=bar) matches foo when followed by bar
    (?!) - Negative look ahead assertion foo(?!bar) matches foo when not followed by bar
    (?<=) - Positive look behind assertion (?<=foo)bar matches bar when preceded by foo
    (? - Negative look behind assertion (?
    (?>) - Once-only subpatterns (?>\d+)bar Performance enhancing when bar not present
    (?(x)) - Conditional subpatterns
    (?(3)foo|fu)bar - Matches foo if 3rd subpattern has matched, fu if not
    (?#) - Comment (?# Pattern does x y or z)


http://www.pcre.org/pcre.txt
http://www.php.net/manual/en/r[..]attern.modifiers.php
http://www.php.net/manual/en/r[..]e.pattern.syntax.php