Comparison operators are an often overlooked aspect of PHP, which can lead to many unexpected outcomes. One such
problem stems from strict comparisons (the comparison of booleans as integers).
While using ‘if/else’ statements within a function or class, there is a common misconception that ‘else’ must be used
in conjunction to declare potential outcomes. However if the outcome is to define the return value, ‘else’ is not
necessary as ‘return’ will end the function, causing ‘else’ to become moot.
When using namespaces, you may find that internal functions are hidden by functions you wrote. To fix this,
refer to the global function by using a backslash before the function name.
String types are a constant feature within the PHP community, but hopefully this section will explain the
differences between the string types and their benefits/uses.
Single quotes
Single quotes are the simplest way to define a string and are often the quickest. Their speed stems from PHP not
parsing the string (does not parse for variables). They are best suited for:
Double quotes are the Swiss army knife of strings, but are slower due to the string being parsed. They are best
suited for:
Escaped strings
Strings with multiple variables and plain text
Condensing multi-line concatenation, and improving readability
While using double quotes that contain variables, it is often the case that the variable will be touching another
character. This will result in PHP not parsing the variable due to the variable being camouflaged. To fix this problem,
wrap the variable within a pair of curly brackets.
Nowdoc syntax was introduced in 5.3 and internally behaves the same way as single quotes except it is suited toward the
use of multi-line strings without the need for concatenating.
Heredoc syntax internally behaves the same way as double quotes except it is suited toward the use of multi-line
strings without the need for concatenating.
Ternary operators are a great way to condense code, but are often used in excess. While ternary operators can be
stacked/nested, it is advised to use one per line for readability.
In comparison, here is an example that sacrifices all forms of readability for the sake of reducing the line count.
To ‘return’ a value with ternary operators use the correct syntax.
It should be noted that you do not need to use a ternary operator for returning a boolean value. An example of this would be.
This can also be said for all operations(===, !==, !=, == etc).
Utilising brackets with ternary operators for form and function
When utilising a ternary operator, brackets can play their part to improve code readability and also to include unions within blocks of statements. An example of when there is no requirement to use bracketing is:
Bracketing also affords us the capability of creating unions within a statement block where the block will be checked as a whole. Such as this example below which will return true if both ($a == 3 and $b == 4) are true and $c == 5 is also true.
Another example is the snippet below which will return true if ($a != 3 AND $b != 4) OR $c == 5.
At times, coders attempt to make their code “cleaner” by declaring predefined variables with a different name. What
this does in reality is to double the memory consumption of said script. For the example below, let us say
an example string of text contains 1MB worth of data, by copying the variable you’ve increased the scripts execution to
2MB.