After installing ecshop, the following error is reported on the homepage:
Strict standards: Only variables shocould be passed by reference inC: \ diyserv \ apps \ ecshop \ shortdes \ cls_template.phpOn Line422
InThis solution can be found on the Internet: Because the PHP function returns a value after php5.3, and the parameter received by the explode function must be a reference, it must be a variable.
Array_shift (explode ('', $ tag); divided into two steps: the first step is $ tar_arr = explode ('', $ tab); the second step is array_shift ($ tar_arr );
Because array_shift should receive a reference rather than a value, and the explode function returns an array value, not an array variable. May someone ask, is there any difference in this?
Let's take a look at the following two ways of writing the statement:
First:
Array_shift (Array (1, 2, 3, 4, 5 ));
The function is a value in the form of an array, rather than a variable. The return value of the function is returned by a value.
Array_shift ($ tab );
The above function parameter is obviously a variable.
When the parameter requirements of a function are common variables, it is no problem to directly write the parameter as a function: for example, trim ('/', implode ('/', array ('h ', 'W'); and trim ('/', $ Str); can both pass, however, if the parameter requirements of a function are referenced, the function cannot be used as a parameter, because the function returns a value rather than a variable, which must be received by the variable before being passed into the function.
Question:
I found that the same error was reported when I changed the preceding error. Later I found that ecshop has its own cache folder temp, which is located in the temp folder under the ecshop installation directory, go to the temp folder and delete all the files in the folder, but do not delete the folder! Delete files in each folder to clear the cache.