Home >Backend Development >PHP Tutorial >php optimization skills

php optimization skills

墨辰丷
墨辰丷Original
2018-06-07 10:44:101881browse

This article mainly introduces PHP optimization skills. Interested friends can refer to it. I hope it will be helpful to everyone.

When programmers write programs, they always want to make their programs occupy the smallest amount of resources, run faster, and have less code. Often we lose a lot of things while pursuing these. The purpose of optimization is to spend the least cost in exchange for the fastest running speed and the easiest to maintain code. The following is a summary of several PHP optimizations:
1. Usage of in_array
Avoid using in_array() on large arrays, and avoid containing more than 20 elements in a loop Arrays use this function. in_array() can be very resource intensive. For small arrays the impact may be minimal, but checking large arrays in a loop may take several seconds. If you really need this functionality, use isset() to find array elements. In fact, the key name is used to query the key value. Calling isset($array[$var]) is much faster than in_array($var, array_keys($array)).

2. Array key name
In PHP, it is legal to use a string without single quotes as an array key name, but we don’t want this - key name Should always be enclosed in single quotes to avoid confusion. Note that this is using a string instead of a variable as the key name.

For example:

// 不好的写法
$foo = $assoc_array[blah];
// 好的写法
$foo = $assoc_array['blah'];
// 不好的写法
$foo = $assoc_array["$var"];
// 好的写法
$foo = $assoc_array[$var];

3. String expression There are two different ways to represent a string in PHP - single quotes or double quotes. The main difference is that the syntax interpreter will perform variable substitution on strings represented by double quotes, but will not handle strings represented by single quotes. Therefore you should always use single quotes unless you really need to handle variables within a string. In this way, we can reduce program running costs, because the syntax interpreter does not need to process a lot of strings with no variables at all each time.
Similarly, if you use a string variable as an argument in a function call, you do not need to enclose the variable in quotes. This will cause the grammar interpreter to do more work than necessary. Remember, almost all escape characters in double quotes have no effect on single quotes. You need to pay attention to the above rules, but sometimes it is appropriate to make exceptions for the sake of code readability.

For example:

// 不好的写法
$str = "This is a really long string with no variables for the parser to find.";
do_stuff("$str");
// 好的写法
$str = 'This is a really long string with no variables for the parser to find.';
do_stuff($str);
// 有时候单引号不是那么合适
$post_url = $phpbb_root_path . 'posting.' . $phpEx . '?mode=' . $mode . '&start=' . $start;
// 双引号有时候能让代码行更集中
$post_url = "{$phpbb_root_path}posting.$phpEx?mode=$mode&start=$start";

4. Operations in the loop definition If there are operations in the comparison part, please be sure to optimize them. Because this part will operate at every step in the loop:

// 在每次循环中sizeof函数都要被调用
 for ($i = 0; $i < sizeof($post_data); $i++)
 {
  do_something();
 }
// 您可以在循环起始部分对这个不变的量赋值
 for ($i = 0, $size = sizeof($post_data); $i < $size; $i++)
 {
  do_something();
 }

5. Branch judgment, switchcase is better than ifelse Using branch statements is much better than using many ifelse.

6. Don’t abuse the @ operator
Don’t abuse the @ operator. It seems very simple, but in fact, using @ is several times less efficient than not using @.
Especially don’t use @ in loops.

7. How to get the time
Many times we are used to using time() to get the current time, but time() is a function after all. It is better to use $_SERVER['REQUEST_TIME directly ']better.

8. String length judgment
Two ways to write:
(1) if(strlen($str) < 5){/ * do something */}
(2)if(isset($str[5])){ /* do something */ }

Summary: The above is this article The entire content, I hope it will be helpful to everyone's study.

Related recommendations:

Methods and cases for implementing matrix transpose operation of two-dimensional arrays in PHP

Methods and cases of merging multiple pictures into one in PHP

PHP development case of WeChat refund function

The above is the detailed content of php optimization skills. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn