PHP Programming/Nuts and Bolts

This page makes use of Color Code Boxes. To leave your feedback regarding this new feature, please click here.

Example 1 - Basic arithmetic operators
This example makes use of the five basic operators used in mathematical expressions. These are the foundation of all mathematical and string operations performed in PHP. The five mathematical operators all function identically to those found in C++ and Java

Examine this example. Each mathematical expression to the right of the assign operator is evaluated, using the normal order of operations. When the expression has been evaluated, the resultant value is assigned to the variable named to the left of the assign operator.

Note: If you are not familiar with (X)HTML, you may not know the purpose of this part of the above code:

There are two code options that perform the opposite of the assign operator. The keyword  should be used for variable nullification, which is actually used with the assign operator  in place of a value. If you want to destroy a variable, the  language construct is available.

Examples:

Apart from that, the powers of 10 can be introduced with the letter "e":

The number formatting is realized by : number of decimals, decimal separator and thousand separator. Example:

Example 2 - String concatenation
This example demonstrates the concatenation operator, which joins together two strings, producing one string consisting of both parts. It is analogous to the plus operator commonly found in C++ string class (see STL), Java, JavaScript, Python implementations.

The statement

As we all know, or for those new to programming will soon find it, programmers are always searching for "tighter code". Simply put, we pride ourselves in doing the most work with the fewest keystrokes. With that in mind, here's a trick that can save those precious keystrokes: concatenate and assign at the same time. It's easy. Let's take the same example as above.

You just saved 8 keystrokes with the exact same output. Big deal? Imagine having to do that with 100 lines of template code like I did recently. Yes, it's a big deal. By the way, if you change the implementation without changing the output, that's known as refactoring. Get comfy with that term. You'll be using it a lot. See more examples of compound assignments below.

Example 3 - Shortcut operators
This snippet demonstrates self-referential shortcut operators. The first such operator is the  operator, which increments   (using the postfix form) by   giving it the value. After incrementing,   is defined and assigned the value.

The second shortcut operator is, which takes   and assigns it the value  , or.

After initializing  to , the subsequent line performs two shortcut operations. Going by order of operations (see manual page below),  is decremented (using the prefix form) and divided into. is assigned to the resulting value,.

Note: The expanded version of the above code (without the shortcut operators) looks like this:

Operators
An operator is any symbol used in an expression used to manipulate data. The seven basic PHP operators are:


 * (assignment)
 * (addition)
 * (subtraction)
 * (multiplication)
 * (division)
 * (modulus)
 * (concatenation)

In addition, each of the above operators can be combined with an assignment operation, creating the operators below:


 * (addition assignment)
 * (subtraction assignment)
 * (multiplication assignment)
 * (division assignment)
 * (modulus assignment)
 * (concatenation assignment)

These operators are used when a variable is added, subtracted, multiplied or divided by a second value and subsequently assigned to itself.

In other words, the statements

There are also increment and decrement operators in PHP.


 * (increment)
 * (decrement)

These are a special case of the addition and subtraction assignment operators.

This code uses the addition assignment operator to increment and decrement a variable. While this is perfectly legal in PHP, it is somewhat lengthy for an operation as common as this. It can easily be replaced by the increment operator, shortening the statement. This code snippet uses the increment and decrement operators to increase and decrease a variable's value by one.

For a more in-depth overview of PHP's operators, including an explanation of bitwise operators, refer to the manual link below.

Precedence
Precedence determines the priority given to certain operators to be performed earlier in a statement. If an operator has higher precedence, it doesn't mean that it is of greater importance; the opposite can often be true.

When multiple operators occur that have the same precedence (whether multiple instances of the same operator or just different operators with the same precedence), it becomes important to consider the associativity: whether right (to left), left (to right), or non-associative.
 * Associativity


 * Examples where associativity is irrelevant

In certain cases (as in the example below), especially where the same operator is present, the associativity may make no difference to the result.

The following...

...with its left associativity is equivalent to:

However, in this case, right associativity would have produced the same result:


 * Examples where associativity is relevant in PHP (but not mathematically)

In mathematics, it may be considered irrelevant in which direction a calculation is performed for operators with the same precedence.

For example, the following...

...is equivalent to this (left associative) statement:

And, if this were considered according to human conventions in mathematical calculations, the following equivalent right associative expression would produce the same result:

However, since we are dealing with a linear computer language that doesn't know to convert the " " into a negative number and group it with the " " before adding it to the " " (and then the " "), if PHP were to perform the following expression in a strict right associative manner, the following (mistaken) outcome would occur:

Thus, the associativity is relevant and should be memorized (though it is generally good practice to make one's groupings explicit anyhow&mdash;both to avoid mistakes and to improve readability for others looking at the code).

Similar problems occur with multiplication and division. Although with human convention, all adjacent multiplication and division groups would have the multiplication performed at the numerator level and the division at the denominator level, the PHP interpreter does not know to do this, so it is bound to set the left(-to-right) convention when explicit groupings (via parentheses&mdash;that have highest precedence) have not been made:

This is equivalent to the left associative:

However, as with the addition/subtraction example above, performing this by right associativity (in a strictly reverse linear fashion) does not produce the same (intended) result:

Newline and Other Special Characters
Both of the below examples make use of the newline character (,  or  , basing on the OS) to signify the end of the current line and the beginning of a new one.

The newline is used as follows:

Notice: the line break occurs in the output wherever the occurs in the string in the echo statement. However, a does not produce a newline when the HTML document is displayed in a web browser. This is because the PHP engine does not render the script. Instead, the PHP engine outputs HTML code, which is subsequently rendered by the web browser. The linebreak   in the PHP script becomes HTML whitespace, which is skipped when the web browser renders it (much like the whitespace in a PHP script is skipped when the PHP engine generates HTML). This does not mean that the operator is useless; it can be used to add whitespace to your HTML, so if someone views the HTML generated by your PHP script they'll have an easier time reading it.

In order to insert a line-break that will be rendered by a web browser, you must instead use the &lt;br /&gt; tag to break a line.

Notice: The newline is  for Linux/Unix-based systems,   for Windows and   for Mac's (until 1996, where MkLinux that bases on Linux came to the market). Therefore the statement above would be altered like so:

The function is available to automatically convert newlines in a string to   tags.

The string must be passed through the function, and then reassigned:

Other special characters include the ASCII  - used for padding binary files, tab  - used to display a standard tab, and    - signifying a carriage return. Again, these characters do not change the rendering of your HTML since they add whitespace to the HTML source. In order to have tabs and carriage returns rendered in the final web page, &amp;tab; should be used for tabs and &lt;br /&gt; should be used for a carriage return.

Input to PHP
PHP has a set of functions that retrieve input. If you are using standard input (such as that from a command-line), it is retrieved using the basic input functions: Reading from standard input:

Web servers
On Web servers, information sent to a PHP app may either be a GET operation or a POST operation.

For a GET operation, the parameters are sent through the address bar. Parameters within the bar may be retrieved by using accessing. On a POST operation, submitted input is accessed by.

A more generic array,  contains the contents of ,  , and.

For More Information

 * PHP Manual: Operators
 * PHP Manual: Expressions
 * PHP Manual: Strings