PHP Tricks
Here are some useful tricks on PHP that will reduce the length of the code or optimize the performance.
The or Operator
or (or ||, logical OR) is a logical operator that returns true when ONE side is true. When the left side returned true, the right side will NOT be evaluated, and if the left side returns false, the right side will be evaluated.
<?php
//Connect to database
mysql_connect('localhost', 'username', 'password')
or die("ERROR: Unable to connect");
?>
The code generally describes:
- Attempt to connect to database.
- If step 1 failed, the code after
orwill be executed. - The code after
oris die(), which will end the script with a message. - Otherwise, don't execute the code after
or, that means the script will not exit.
It's also a same version of:
<?php
//Connect to database
if (mysql_connect('localhost', 'username', 'password') == false ) {
die("ERROR: Unable to connect");
}
>>
String as Array
Did you know what a string can be treated as an array? Just add [ and ] then you can find a specified character in a string.
<?php $s = 'Hello, world!'; echo $s[0]; //echoes 'H' ?>
Suppress errors
When you evaluated some functions, probably file_get_contents(), an annoying error message will appear if something is wrong. Add @ (at sign) before the statement to suppress errors. (An example is: @file_get_contents('http://does.not.exist.com/nothing' will not generate error message even if it is impossible to get the content.) However, fatal errors/parse errors will still be shown.
The backtick(`) operator
Sometimes, you want to run programs/commands in PHP. You can use the exec() function. However, the backtick is faster. Instead of using $s = exec('ls'), you can use $s = `ls`, the output of `ls` command will be put to $ls. This feature was borrowed from Perl and/or Bash.
Using Single Quotes
Most time, you use strings to access arrays. Many people are still writing $_GET["title"]. It slows down the parser, because the parser is keeping looking for interpolation in double-quoted string. Instead, use single quotes: $_GET['title']. It also applies to echo 'Hello, world!', which does not use variables in the string at all.






















