PHP中关于函数中的return问题

<?phpclassPerson{private$name;private$age;private$sex;function__construct($name,$sex,... <?php
class Person {
private $name;
private $age;
private $sex;

function __construct($name, $sex, $age="1"){
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}

private function __isset($properName){
if($properName == "name")
return;
return isset($this->$properName);
}

private function __unset($properName){
if ($properName == "name")
return;
unset($this->$properName);
}

function speak(){
echo "Name:".$this->name.'<br>'."Age:".$this->age.'<br>'."Sex:".$this->sex.'<br>';

}
}

$csh = new Person("changsiheng", "male", "22");
var_dump(isset($csh->name));
var_dump(isset($csh->age));
var_dump(isset($csh->sex));

unset($csh->name);
unset($csh->age);
unset($csh->sex);
$csh->speak();

?>

我想问的是为什么isset中最后需要return 而unset中就不需要return呢?
可以帮我讲讲return到底是怎么回事,学的时候就有点儿晕
展开
 我来答
匿名用户
2014-11-14
展开全部

return在自定义函数中的作用是用于给自定义函数本身返回一个值,并结束该函数的运行

比如:

function a() {
  $b = 10; 
}

//调用这个函数
echo a(); //这里什么都不会输出,因为函数没有值  
//但改一下,加上return
function a() {
 $b = 10;
 return $b;
}     
echo a(); //这里会输出10

function a() {
  $b = 10;
  return $b;
  echo 100; //这行不会运行,因为return 返回值后,后面的代码将不再运行  
}
丰鸿福71
2014-11-14 · TA获得超过312个赞
知道小有建树答主
回答量:409
采纳率:85%
帮助的人:238万
展开全部
private function __isset($properName){
    if($properName == "name")//if支持不写{},所以第一个return是if条件成立时执行的
    return;
    return isset($this->$properName);
}
上面的函数同下:
private function __isset($properName){
    if($properName == "name"){
        return;
    }
    return isset($this->$properName);
}

给你一个最简单的例子

//本次运行输出:3
$a =3; 
if($a=='2')
echo 2;
echo 3;die;

//本次运行输出:23
$a =2; 
if($a=='2')
echo 2;
echo 3;die;

至于if加不加大括号, 区别在于:
      加大括号:执行大括号里所有的代码
      不加:只执行if()底下第一行代码,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浪迹天涯的流星
推荐于2016-06-05 · 知道合伙人教育行家
浪迹天涯的流星
知道合伙人教育行家
采纳数:8922 获赞数:81538
对于基本办公软件比较擅长。

向TA提问 私信TA
展开全部
可以,按逻辑关系,当执行到一个return时,返回,后面的语句不再执行,若很一个没有执行到的话,后面的就有可能被执行了。
不过这段程序里的第二个return一点用也没有,永远不会被执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
渭水思君8070
2014-11-14 · 超过71用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:69.9万
展开全部
1.问题是函数larger的参数调用中使用了未定义的变量$b,而不是函数larger的代码编写问题。所以要避免出现larger($a,$b);

如果不确定参数数量的话,请使用func_get_args之类的函数。

2. 在执行函数larger前对参数进行检查,不要仅在函数内检查。或者参数使用数组格式。
请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式