2.2 - 第二章:函数 - 返回值

在PHP中所有的函数都有返回值——即使你没有指定它返回内容。因此在PHP中声名”void”(无返回值)的函数没有意义。你可以使用return关键字来指定要返回的内容:

function hello()
{
  return "Hello World"; // 没有任何显示结果
}

$txt = hello(); // 将返回的“Hello World”值赋给$txt

echo hello(); // 显示“Hello World”

显然,return也可用于中断一个函数的运行,即使你没有打算返回任何值:

function hello($who) 
{
  echo "Hello $who";
  if ($who == "World") {
    return; // 执行到这里的话,本函数下面的语句就不会被执行到
  }

  echo ", how are you";
}

hello("World"); // 显示“Hello World”

hello("Siemen"); // 显示“Hello Siemen, how are you?”

请注意,即使你没有在return后面加上需要返回的内容,PHP仍然会触发函数返回NULL。

函数也可以返回一个引用;这可以使返回值是其本身的引用,来取代复制关系(默认的返回值除了对象外其余都是复制关系)。比较典型的例子是资源类型(类似数据库连接)与使用工厂模式。但要注意的是——你只能返回一个值作为引用,而不是一个表达式,或者强制使用return语句返回NULL:

function &query($sql)
{
  $result = mysql_query($sql);
  return $result;
}

// 下面是不正确的写法,会引发PHP的提示
function &getHello()
{
  return "Hello World";
}

// 同样是不正确的写法,这样写会引发一个警告
function &test()
{
  echo "This is a test";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值