php 出现Strict Standards- Only variables should be passed b

网络编程 2025-03-23 20:33www.168986.cn编程入门

这个问题多数源自于参数传递中的引用使用不当,有两种解决办法供您参考。可以选择修改代码,避免使用引用传递。如果您对这方面不太熟悉,还可以选择修改PHP的配置文件。具体来说,您可以调整error_reporting的值,将其设为E_ALL & ~E_NOTICE,以改变错误报告机制。调整函数中的引用方式也能解决问题。

在安装ECShop时,您可能遇到了一个错误提示:“Strict Standards: Only variables should be passed by reference”。这个问题出现在F:\..\cls_template.php文件的第418行。针对这个问题,解决方案是修改cls_template.php文件中的相关代码。例如,如果您使用的是狼蚁网站SEO优化的代码,其中的一些函数传参方式在PHP 5.3以上版本中会报错。

具体来说,原来的代码可能是这样的:

```php

$tag_sel = array_shift(explode(' ', $tag));

```

但由于PHP 5.3以上版本默认只能传递具体的变量,而不能通过函数返回值传递,所以需要修改代码,将explode的结果单独赋值给一个变量:

```php

$tagArr = explode(' ', $tag);

$tag_sel = array_shift($tagArr);

```

这样修改后,顶部的报错应该就会消失。至于左侧和底部的报错,可能需要去ecshop的后台点击清除缓存才能去除。

狼蚁网站SEO优化的代码中还有一段类似的代码:

```php

$file_suffix = strtolower(array_pop(explode('.', $file_name)));

```

在PHP 5.3以上版本中也会报错。正确的修改方式如下:

```php

$fnarray = explode('.', $file_name);

$file_suffix = strtolower(array_pop($fnarray));

```

为了避免这类问题,我们在编写代码时应该注意参数传递的方式。尽量单独写好每个参数的传递,避免在一行代码中完成所有操作。这样可以提高代码的可读性和可维护性,同时减少因引用传递不当导致的错误。希望这些解决方案能对您有所帮助。至于您提到的“cambrian.render('body')”,这可能是您应用中的某个特定函数或方法调用,与上述问题的解决无关。

上一篇:FSO遍历目录实现全站插马的代码 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by