PHP String Length determination Efficiency

Source: Internet
Author: User

Experienced programmers found that php judges the length of a string, and isset () is faster than strlen (), and the execution efficiency is higher.
That is:
Copy codeThe Code is as follows:
$ Str = 'aaaaa ';
If (strlen ($ str)> 6)
VS
If (! Isset ($ str {6 })

In simple tests with examples, the situation is basically true, and the isset () efficiency is almost three times that of strlen.
Example:
Copy codeThe Code is as follows:
<? Php
// Use strlen
$ Arr = "123456 ";
$ STime = microtime (1 );
If (strlen ($ arr)> 6 ){
// Echo 1;
}
Echo microtime (1)-$ sTime;

Output:0.00035595893859863
Copy codeThe Code is as follows:
<? Php
// Use isset ($ arr {})
$ Arr = "123456 ";
$ STime = microtime (1 );
If (! Isset ($ arr {6 })){
// Echo "1 \ r \ n ";
}
Echo microtime (1)-$ sTime;

Output:0.00019097328186035

Why is isset () faster than strlen ()?
The strlen () function is executed quite quickly because it does not perform any calculations and only returns the known string lengths stored in the zval structure (C's built-in data structure, used to store PHP variables. However, because strlen () is a function, it is more or less slow, because function calls take many steps, such as lowercase letters, PHP does not distinguish between case-insensitive function names.) and hash searches are executed along with the called function.
In some cases, the isset () technique can accelerate your code execution. Because isset () and isset () are used as a Language Structure, Function search and lowercase letters are not required for execution. That is to say, in fact, you do not spend too much money in the top-level code that checks the string length.

Therefore, calling isset () is faster than strlen.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.