方法调用返回值和输出值不同

版权声明:此文章转载自_infocool 原文链接:http: www infocool net kb PHP 201610 204437 html 如需转载请联系听云College团队成员

版权声明:此文章转载自_infocool

原文链接:http://www.infocool.net/kb/PHP/201610/204437.html

如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com

现象: 调动方法,在return之前有输出值,但是在调用方法中就没有相应的返回值

解决办法: 折腾了好久,原来在构造方法中已经传递了需要的变量,在方法中再次传递变量,在构造方法中有输出值,但是在方法中因为参数传递错误无法正常得到返回值。

代码如下:

public function __construct ( $usrid, $firmid=0, $depart=0 ) {$usrid = abs(intval($usrid));parent::__construct($usrid);$firmid = abs(intval($firmid));$depart = abs(intval($depart));if ( empty($firmid) ) $firmid = FirmStaff::club($usrid);if ( empty($depart) ) $depart = FirmStaff::work4firm($usrid, $firmid);$this->_usrid = $usrid;}  public function joinurl ($userid) { if ( empty($userid) ) throw new Exception('查询的主键信息不能为空'); $clubid = FirmStaff::club($userid); if ( !isset($clubid) || empty($clubid) ) throw new Exception( '该用户没有公司,请联系公司的HR' ); debug_print_backtrace();die(); $firmobj = new CMFirm($clubid); $nmroad = $firmobj->challengemap(null,false,true); $roadlinks = UtilRoad::roadmaplinks(); return isset($roadlinks[$nmroad]) ? $roadlinks[$nmroad] : '/acteam/index';}

反思:这种写代码方式是需要避免的,在构造方法中已经实例化的参数不要在在方法参数中添加,这样做会是问题复杂化。

想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

未登录用户
全部评论0
到底啦