Question: This is related to:
[Why does "echo '2' . print(2) + 3" print 521?](https://stackoverflow.com/questions/13176046/why-does-echo-2-print2-3-print-521)

I was wondering why 

print(99) + print(99) + print(99) + print(99);

shows 99100100100.... 

I'd like to learn about the quirks of PHP.

Answer: 
The `print` function produces output and then (see [documentation](http://php.net/manual/en/function.print.php)) returns the value 1. To further complicate things, the `print` function is a language construct (see the documentation) which does not require the parenthesis.

So, if you had the statement

```
print(99) + print(99);

```

What you are actually seeing is the printing of a 99, from the right-most `print`, followed by the result of `print(99) + 1;` which, due to the language construct, is the same as `print 99 + 1;` or `print (99 + 1);`.
Because `print()` **always returns 1**. Check the [php manual](http://php.net/manual/en/function.print.php)  

This is unlike echo() which does not return the value.

Both `print()` and `echo()` are not actual functions but language constructs.