Just because PHP allows you to do something, doesn't mean that it is the best thing to do. For example, PHP will automatically convert single word strings (non-quote/apostrophe delimited) into an actual string if required.
$arr = array();
for($x=0;$x<1000000;$x++)
{
$arr[foo]='bar';
}
In this case, PHP will automatically convert foo to the string 'foo'. However, this up conversion doesn't come without a cost. For example, when timing the use of this script, the following are the results:
$ time php test.php real 0m1.641s user 0m1.424s sys 0m0.044s
However, when running the following script and not forcing it to up convert, the results are extremely different.
$arr = array();
for($x=0;$x<1000000;$x++ )
{
$arr['foo']='bar';
}
In this case, the word 'foo' is already pre-defined as a string, so no up conversion is required. The time for this is as follows:
$ time php test.php real 0m0.467s user 0m0.292s sys 0m0.052s
As you can see, by including the quotes and telling PHP that it actually is a string, you can potentially reduce the execution time for your PHP scripts.
Keep this in mind when using the associative arrays in PHP.
Posted in php
Tags: