当我打电话给funcion cidades时注意:未定义的属性:Dados :: $ cidades

时间:2011-12-29 21:06:30

标签: php

file 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;$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行的Dados :: $ cidades in capitais.php

警告:array_search()[function.array-search]:

中第二个参数的数据类型错误

4 个答案:

答案 0 :(得分:2)

$dados->cidades["$i"]

应该是

$dados->cidades("$i")

答案 1 :(得分:0)

cicades不是Dados类的属性,它是一种方法,所以它需要被称为

$dados->cidades();

传递适当的$ estado参数

答案 2 :(得分:0)

echo $estado["$i"].' : '.array_search($capitais["$i"],$dados->cidades["$i"]).'<br />';

应该是

echo $estado["$i"].' : '.array_search($capitais["$i"],$dados->cidades("$i")).'<br />';

因为cidades是一个函数,而不是数组属性。

答案 3 :(得分:0)

$dados->cidades["$i"]) should be $dados->cidades($i))