致命错误:无法重新声明函数 [英] Fatal error: Cannot redeclare function
问题描述
如何解决这个问题?
我的代码:
// 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屋!
查看全文