致命错误:无法重新声明函数 [英] Fatal error: Cannot redeclare function

查看:108
本文介绍了致命错误:无法重新声明函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何解决这个问题?




我的代码:

  // Buscar Tema 
$ guardardato = array();
$ b foreach($ html-> find('table',2) - > find('tr')as $ datossc){
$ title = $ datossc-> find ('td',1) - >明文;
if($ title!='Song Title'){

$ guardardato [0] = $ title;

$ guardardato [0] = preg_replace(( - ), - ,$ guardardato [0]);
$ guardardato [0] = preg_replace((:),,$ guardardato [0]);
$ guardardato [0] = preg_replace(([0-9] +),,$ guardardato [0]);
$ guardardato [0] = preg_replace((当前歌曲),,$ guardardato [0]);
$ guardardato [0] = preg_replace((pista),,$ guardardato [0]);
$ guardardato [0] = preg_replace((pista),,$ guardardato [0]);
$ guardardato [0] = preg_replace((www。[a-z] +。com.ar),,$ guardardato [0]);
$ guardardato [0] = preg_replace((www。[a-z] +。com),,$ guardardato [0]);
guardardato [0] = preg_replace((www。[a-z] + .net),,$ guardardato [0]);
guardardato [0] = preg_replace(([a-z] +。com.ar),,$ guardardato [0]);
$ guardardato [0] = preg_replace(([a-z] +。com),,$ guardardato [0]);
guardardato [0] = preg_replace(([a-z] + .net),,$ guardardato [0]);
$ guardardato [0] = ucwords(strtolower($ guardardato [0]));

function obtener($ guardardato){
foreach($ guardardato as $ k => $ v){
return $ v;
}
}
print obtener($ guardardato);


$ / code $ / pre

$ hr

错误:
$ b


致命错误:无法重新声明obtener() C:\xampp\htdocs ... \index.php:43)在 C:\xampp\htdocs ... \index.php 43







第43行:

 函数obtener($ guardardato){






我尝试使用这个可行的解决方案,但那是



可以帮助我吗?

谢谢。

function obtener($ guardardato))嵌套在你的 foreach中循环,因此每次循环访问数组中的项目时,它都会尝试重新定义函数 obtener



为了解决这个问题,只需在 foreach 循环之外移动你的函数就可以了:

 函数obtener($ guardardato){
foreach($ guardardato as $ k => $ v){
return $ v;
}
}

// Buscar Tema
$ guardardato = array();
$ b foreach($ html-> find('table',2) - > find('tr')as $ datossc){
$ title = $ datossc-> find ('td',1) - >明文;
if($ title!='Song Title'){

$ guardardato [0] = $ title;

$ guardardato [0] = preg_replace(( - ), - ,$ guardardato [0]);
$ guardardato [0] = preg_replace((:),,$ guardardato [0]);
$ guardardato [0] = preg_replace(([0-9] +),,$ guardardato [0]);
$ guardardato [0] = preg_replace((当前歌曲),,$ guardardato [0]);
$ guardardato [0] = preg_replace((pista),,$ guardardato [0]);
$ guardardato [0] = preg_replace((pista),,$ guardardato [0]);
$ guardardato [0] = preg_replace((www。[a-z] +。com.ar),,$ guardardato [0]);
$ guardardato [0] = preg_replace((www。[a-z] +。com),,$ guardardato [0]);
guardardato [0] = preg_replace((www。[a-z] + .net),,$ guardardato [0]);
guardardato [0] = preg_replace(([a-z] +。com.ar),,$ guardardato [0]);
$ guardardato [0] = preg_replace(([a-z] +。com),,$ guardardato [0]);
guardardato [0] = preg_replace(([a-z] + .net),,$ guardardato [0]);
$ guardardato [0] = ucwords(strtolower($ guardardato [0]));

print obtener($ guardardato);
}
}


I've a problem, with this function.

How can solve this?


My Code:

// Buscar Tema
$guardardato = array();

foreach($html->find('table', 2)->find('tr') as $datossc) {
    $title = $datossc->find('td', 1)->plaintext;
    if ($title != 'Song Title') {

        $guardardato[0] = $title;

        $guardardato[0] = preg_replace( "(-)", " - ", $guardardato[0]);
        $guardardato[0] = preg_replace( "(:)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([0-9]+)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(Current Song)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(www.[a-z]+.com.ar)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(www.[a-z]+.com)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(www.[a-z]+.net)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([a-z]+.com.ar)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([a-z]+.com)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([a-z]+.net)", "", $guardardato[0]);
        $guardardato[0] = ucwords(strtolower($guardardato[0]));

        function obtener($guardardato) {
            foreach ($guardardato as $k => $v){
                return $v;
            }
        }
        print obtener($guardardato);
    }
}


Error:

Fatal error: Cannot redeclare obtener() (previously declared in C:\xampp\htdocs...\index.php:43) in C:\xampp\htdocs...\index.php on line 43


Line 43:

function obtener($guardardato) {


I try with this posible solution but thats does work.

Can help me?

Thanks.

解决方案

Your function definition (function obtener($guardardato)) is nested inside of your foreach loop, so every time it loops through an item in the array it will try to redefine the function obtener.

To fix this simply move your function outside of the foreach loop like so:

function obtener($guardardato) {
    foreach ($guardardato as $k => $v){
        return $v;
    }
}

// Buscar Tema
$guardardato = array();

foreach($html->find('table', 2)->find('tr') as $datossc) {
    $title = $datossc->find('td', 1)->plaintext;
    if ($title != 'Song Title') {

        $guardardato[0] = $title;

        $guardardato[0] = preg_replace( "(-)", " - ", $guardardato[0]);
        $guardardato[0] = preg_replace( "(:)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([0-9]+)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(Current Song)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(pista)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(www.[a-z]+.com.ar)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(www.[a-z]+.com)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "(www.[a-z]+.net)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([a-z]+.com.ar)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([a-z]+.com)", "", $guardardato[0]);
        $guardardato[0] = preg_replace( "([a-z]+.net)", "", $guardardato[0]);
        $guardardato[0] = ucwords(strtolower($guardardato[0]));

        print obtener($guardardato);
    }
}

这篇关于致命错误:无法重新声明函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆