BOM - Byte-order mark - UTF-8 signature - zero-width no-break space - U+FEFF - U+2060 - ⁠
BOM is conventionally used as a marker to indicate that text is encoded in UTF-8, UTF-16 or UTF-32.
BOM is placed as the first character of a file or character stream.
Many Windows programs (including Windows Notepad) add BOM's to UTF-8 files.
In Unix-like systems BOM will interfere with correct processing of important codes.
BOM may also interfere with source for programming languages that don't recognise it.
In PHP it causes the "headers already sent" error.
BOM is generally invisible due to the fact it is a zero-width no-break space. In text editors and web browsers that are not prepared to handle UTF-8, BOM appears as the ISO-8859-1 characters 
In your text editor set preferences to always remove UTF-8 signature. That automatically cleans BOM up from the code files.