Php 调用function cidades时注意:未定义属性:Dados::$cidades
文件capitais.phpPhp 调用function cidades时注意:未定义属性:Dados::$cidades,php,Php,文件capitais.php <?php /*Capitais*/ ini_set('display_errors',1); ini_set('display_startup_erros',1); error_reporting(E_ALL); require_once('dados.php'); $dados = new Dados; $estado = $dados->_estado; $capitais = $dados->_capitais; for($i=1;$
<?php
/*Capitais*/
ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);
require_once('dados.php');
$dados = new Dados;
$estado = $dados->_estado;
$capitais = $dados->_capitais;
for($i=1;$i<count($estado);$i++){
echo $estado["$i"].' : '.array_search($capitais["$i"],$dados->cidades["$i"]).'<br />';
}
?>
文件dados.php
<?php
class Dados{
public $_estado = array("Selecione","AC","AL","AM","AP","BA");
public $_capitais = array("Selecione Primeiro o Estado","RIO BRANCO","MACEIO","MANAUS","MACAPA","SALVADOR");
public function cidades($estado){
switch($estado){
case "1":
return array("Selecione","RIO BRANCO","RODRIGUES ALVES","SANTA ROSA","SENA MADUREIRA","SENADOR GUIOMARD","TARAUACA","XAPURI");
break;
case "2":
return array("Selecione","MACEIO","MAJOR ISIDORO","MAR VERMELHO","MARAGOGI","MARAVILHA","MARECHAL DEODORO","MARIBONDO");
break;
case "3":
return array("Selecione","MANAQUIRI","MANAUS","MANICORE","MARAA","MAUES","NHAMUNDA","NOVA OLINDA DO NORTE","NOVO AIRAO","NOVO ARIPUANA","PARINTINS","PAUINI","URUCURITUBA");
break;
case "4":
return array("Selecione","AMAPA","CALCOENE","MACAPA");
break;
case "5":
return array("Selecione","RUY BARBOSA","SALINAS DA MARGARIDA","SALVADOR","SANTA BARBARA");
break;
}
}
}
?>
注意:第14行capitais.php中未定义的属性:Dados::$cidades
警告:array_search()[function.array search]:cicades中第二个参数的数据类型错误不是Dados类的属性,它是一个方法,因此需要作为
$dados->cidades();
传入适当的$estado参数echo$estado[“$i”]。:'。数组搜索($capitais[“$i”],$dados->ciades[“$i”])。
;
echo $estado["$i"].' : '.array_search($capitais["$i"],$dados->cidades["$i"]).'<br />';
应该是
echo $estado["$i"].' : '.array_search($capitais["$i"],$dados->cidades("$i")).'<br />';
$dados->cidades("$i")
echo$estado[“$i”]:'。数组搜索($capitais[“$i”],$dados->cidades($i”)。
;
因为cidades是一个函数,而不是数组属性
$dados->cidades["$i"]
应该是
echo $estado["$i"].' : '.array_search($capitais["$i"],$dados->cidades("$i")).'<br />';
$dados->cidades("$i")
将$i参数传递给cidades()函数。您将其视为一个数组,并将其与参数数组混淆。谢谢你解决了我的问题。