我在课堂上有2个方法。
第一种方法让$id
通过webservice检索特定项目的3个参数。这是一个房地产系统的网络服务。我将使用这3个参数来查找相关项目。
到目前为止,一切正常。
我的问题是返回resemblant()
方法的数据。
我实例化object
,我将$id
发送到功能方法,然后我注册了属性。
$get
属性返回信息,但$similar = $obj->resemblant()
没有返回。
我正在学习。
如何返回
resemblant()
中方法$similar
内的 数据 ?
<?php
require("Acesso.class.php");
class Semelhantes extends Acesso
{
public function features($id)
{
$postFields = '{"fields":["Codigo","Categoria","Bairro","Cidade","ValorVenda","ValorLocacao","Dormitorios","Suites","Vagas","AreaTotal","AreaPrivativa","Caracteristicas","InfraEstrutura"]}';
$url = 'http://danielbo-rest.vistahost.com.br/'.$this->vsimoveis.'/'.$this->vsdetalhes.'?key=' . $this->vskey;
$url .= '&imovel='.$id.'&pesquisa=' . $postFields;
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER , array( 'Accept: application/json' ) );
$result = curl_exec($ch);
$result = json_decode($result, true);
/**
* Paramentros para filtrar semelhança
* @var [type]
*/
$fcidade = str_replace(" ", "+", $result['Cidade']);
$fdorms = $result['Dormitorios'];
$fvalor = $result['ValorVenda'];
return array(
'cidade' => $fcidade,
'dorms' => $fdorms,
'valor' => $fvalor
);
}
public function resemblant()
{
$get = $this->features($id);
return $get['Cidade'];
}
}
/* Chamando as funções em outra parte do sistema */
$obj = new Semelhantes;
$features = $obj->features(2);
$similar = $obj->resemblant();
非常感谢
答案 0 :(得分:2)
您可以通过多种方式解决此处的问题
首先,您可以更改resemblant()
以接收参数
public function resemblant($id)
{
$get = $this->features($id);
return $get['cidade']; // case of variable fixed also
}
并使用与features()
/* Chamando as funções em outra parte do sistema */
$obj = new Semelhantes;
$features = $obj->features(2);
$similar = $obj->resemblant(2);
echo $similar;
或者您可以将参数作为属性传递给features()
并在resemblant()
protected $last_id;
public function features($id)
{
$this->last_id = $id;
// other existing code
}
public function resemblant()
{
$get = $this->features($this->last_id);
return $get['cidade']; // case of variable fixed also
}
然后像你原来那样调用这些方法
/* Chamando as funções em outra parte do sistema */
$obj = new Semelhantes;
$features = $obj->features(2);
$similar = $obj->resemblant();
echo $similar;
答案 1 :(得分:1)
在第一个函数中,您可以像这样设置数组:
return array(
'cidade' => $fcidade,
'dorms' => $fdorms,
'valor' => $fvalor
);
在第二个函数中,您可以像这样访问值:
return $get['Cidade'];
请注意 cidade 和 Cidade ?不同的情况。这就是你的意思:
return $get['cidade'];
您可以在此处阅读有关数组中区分大小写的更多信息:PHP array, Are array indexes case sensitive?