在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"; }