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.