PHP引用传值实例
PHP引用传值实例
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
/*
* 获取完整的地区名称
*/
public function getRegionName(RegionRepository $regionRepository)
{
try {
$rule = [
'cri_code' => 'require',
];
$msg = [
'cri_code.require' => 'cri_code can not be empty',
];
$validate = Validate::make($rule, $msg);
$result = $validate->check($this->request->post());
if (!$result) {
return api_format(self::PARAM_ERROR, $validate->getError());
}
$criCode = $this->request->post('cri_code');
$info = $regionRepository->getRegionByCriCode($criCode);
if (!$info) {
return api_format(self::SYSTEM_ERROR, 'System error');
}
$prefix = '';
$regionRepository->parentRegionName($info->cri_parent_code, $prefix);
$data['cri_name'] = $prefix . $info->cri_name;
return api_format(self::OK, 'Success', $data);
} catch (Exception $e) {
throw $e;
}
}
下面引用传值的方法。
参数$string既可以说是入参也可以说是出参,即它的值是最新的值。
/*
* 获取完整地区名称(递归方法之:引用传值)
*/
public function parentRegionName($criCode, &$string)
{
try {
if ($criCode != '000000') {
$parentRegion = self::getRegionByCriCode($criCode);
if (!$parentRegion) {
return $string;
}
$string = $parentRegion->cri_name . $string;
self::parentRegionName($parentRegion->cri_parent_code, $string);
}
/*-----------------以下是非引用传值的写法---------------------*/
// if ($criCode != '000000') {
// $parentRegion = self::getRegionByCriCode($criCode);
// if (!$parentRegion) {
// return $string;
// }
// $string = $parentRegion->cri_name . $string;
// return self::parentRegionName($parentRegion->cri_parent_code, $string);
// }
//
// return $string;
} catch (Exception $e) {
throw $e;
}
}