Logic Error
A logic error (or logical error) is a mistake in a program's source code that results in incorrect or unexpected behavior. It is a type of runtime error that may simply produce the wrong output or may cause a program to crash while running.
Many different types of programming mistakes can cause logic errors. For example, assigning a value to the wrong variable may cause a series of unexpected program errors. Multiplying two numbers instead of adding them together may also produce unwanted results. Even small typos that do not produce syntax errors may cause logic errors. In the PHP code example below, the if statement may cause a logic error since the single equal sign (=) should be a double equal sign (==).
Incorrect: if ($i=1) { ... }
Correct: if ($i==1) { ... }
In PHP, "==" means "is equal to," while "=" means "becomes." Therefore, the incorrect if statement always returns TRUE, since assigning 1 to the variable $i returns a TRUE value. In the correct code, the if statement only returns TRUE if $i is equal to 1. However, since the syntax of the incorrect code is acceptable, it will not produce a syntax error and the code will compile successfully. The logic error might only be noticed during runtime. Because logic errors are often hidden in the source code, they are typically harder to find and debug than syntax errors.