php+表达式作为默认值,PHP函数中默认参数的的写法

函数可以定义 C++ 风格的标量参数默认值,如下所示:

Example #3 在函数中使用默认参数

function makecoffee($type = "cappuccino")

{

return "Making a cup of $type.\n";

}

echo makecoffee();

echo makecoffee(null);

echo makecoffee("espresso");

?>

以上例程会输出:

Making a cup of cappuccino.

Making a cup of .

Making a cup of espresso.

PHP 还允许使用数组 array 和特殊类型 NULL 作为默认参数,例如:

Example #4 使用非标量类型作为默认参数

function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL)

{

$device = is_null($coffeeMaker) ? "hands" : $coffeeMaker;

return "Making a cup of ".join(", ", $types)." with $device.\n";

}

echo makecoffee();

echo makecoffee(array("cappuccino", "lavazza"), "teapot");

?>

默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等。

注意当使用默认参数时,任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。考虑下面的代码片断:

Example #5 函数默认参数的不正确用法

function makeyogurt($type = "acidophilus", $flavour)

{

return "Making a bowl of $type $flavour.\n";

}

echo makeyogurt("raspberry"); // won't work as expected

?>

以上例程会输出:

Warning: Missing argument 2 in call to makeyogurt() in

/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41

Making a bowl of raspberry .

现在,比较上面的例子和这个例子:

Example #6 函数默认参数正确的用法

function makeyogurt($flavour, $type = "acidophilus")

{

return "Making a bowl of $type $flavour.\n";

}

echo makeyogurt("raspberry"); // works as expected

?>

以上例程会输出:

Making a bowl of acidophilus raspberry.

Note: 自 PHP 5 起,传引用的参数也可以有默认值。

在python函数中默认参数的一些坑

一.默认参数 python为了简化函数的调用,提供了默认参数机制: 这样在调用pow函数时,就可以省略最后一个参数不写: 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: ...

Effective C++ .37 virtual函数中默认参数的表现

#include #include using namespace std; class Pen { public: ) { cout ...

Kotlin函数中默认参数

Java不支持默认参数.但kotlin函数却可以 package loaderman.demo class Customer(var name:String ="name"){// ...

C++中函数的默认参数

使用方法: (1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数. (2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替. 注意事项: (1)一般在声明函数是设置默认参数. 如 ...

C#函数的默认参数——填坑记

昨天踩了一个坑.默认参数 + 增量发布的坑. 过程是这样的. 1. 有一个底层的方法,格式形如 void Test(int p1, string p2, Func ...

JavaScript函数的默认参数(default parameter)

JavaScript函数的默认参数(default parameter) js函数参数的默认值都是undefined, ES5里,不支持直接在形参里写默认值.所以,要设置默认值,就要检测参数是否为un ...

vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置

vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置 [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/ar ...

Python 函数中,参数是传值,还是传引用?

在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...

python定义函数时默认参数注意事项

如果在调用一个函数时,没有传递默认参数,则函数内的默认参数是对函数的默认参数属性__defaults__的引用, 如 def func(arg1=[]): arg1.append(2) 调用func时 ...

随机推荐

第3月第15天 afconvert lame

1. //CAF 转换成MP3 (可以) afconvert -f mp4f -d aac -b 128000 /Users/amarishuyi/Desktop/sound1.caf/Users/a ...

command not found,系统很多命令都用不了 ,修改环境变量

bash: ***: command not found,系统很多命令都用不了,均提示没有此命令. 突然之间linux很多命令都用不了,均提示没有此命令. 这应该是系统环境变量出现了问题导致的. 解决 ...

bestcoder Round #7 前三题题解

BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

几种不同存储形式下的数据挖掘问题[ZZ]

从原理上说,数据挖掘应该可以应用到任何信息存储方式的知识挖掘中,但是挖掘的挑战性和技术会因为源数据的存储类型的不同而不同.特别是,近年来的研究表明数据挖掘所涉及的数据存储类型越来越丰富,除了一些有通用 ...

.NET vs JAVA

一个同事写一个方案,让我补充下.NET和 JAVA语言的优缺点,以下是我的回复: 老X你好! 我觉得这个问题,本质上不是java和.net两个开发语言方面的比较,单纯从这两个开发语言来讲,部分伯仲,在 ...

maven之pom

记录一下最近的pom的相关设置,plugin的官方地址配置:http://maven.apache.org/plugins/index.html 看了网上说了很多例子,有很多不清楚,看一下官方的,会有 ...

PAT (Advanced Level) 1007. Maximum Subsequence Sum (25)

简单DP. 注意:If all the K numbers are negative, then its maximum sum is defined to be 0, and you are sup ...

C#去掉JSON字符串中的最后一个数字

这个问题总结起来就是去掉字符串中的最后一个"," 字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: ...

Alpha冲刺No.5

一.站立式会议 在助教帮助下,优先解决404的问题,将demo移植到自己项目上. 进一步制作界面. 将已做好的内容,移植到手机做部分测试,能够在同一路由子网内登录数据库. 二.实际项目进展 已经解决了 ...

OpenBUGS抽样数据基本操作

新建两个文件 第一个文件写操作程序,第二个文件写数据数量,类似于下图 鼠标聚焦在第一个文件中,点击工具栏的Model,选择Specification,然后点击check Moel,会有弹框出现 点击确 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值