我对PHP函数的默认值感到困惑.说我有这样的功能:
function foo($blah, $x = "some value", $y = "some other value") {
// code here!
}
Run Code Online (Sandbox Code Playgroud)
如果我想使用$ x的默认参数并为$ y设置不同的参数,该怎么办?
我一直在尝试不同的方式,我只是变得更加困惑.例如,我尝试了这两个:
foo("blah", null, "test");
foo("blah", "", "test");
Run Code Online (Sandbox Code Playgroud)
但是这两个都不会导致$ x的正确默认参数.我也尝试用变量名设置它.
foo("blah", $x, $y = "test");
Run Code Online (Sandbox Code Playgroud)
我完全期望这样的事情能发挥作用.但它根本无法实现.似乎无论我做什么,每次调用函数时,我都必须最终输入默认参数.而且我必须遗漏一些明显的东西.
在PHP 4/5中是否可以在调用时指定一个命名的可选参数,跳过你不想指定的参数(比如在python中)?
就像是:
function foo($a,$b='', $c='') {
// whatever
}
foo("hello", $c="bar"); // we want $b as the default, but specify $c
Run Code Online (Sandbox Code Playgroud)
谢谢
如果我有这样的功能:
function abc($a,$b,$c = 'foo',$d = 'bar') { ... }
Run Code Online (Sandbox Code Playgroud)
我想$c假设它是默认值,但需要设置$d,我将如何在PHP中进行调用?
很长一段时间我都在研究php.
但是我可能不知道一个问题
就像我有一个功能如下:
function hello($param1, $param2="2", $param3="3", $param4="4")
Run Code Online (Sandbox Code Playgroud)
现在每当我使用这个函数,如果我需要第4个参数那个$ param4那么我仍然需要像这样将所有空白称为空白:
hello(1, '', '', "param4");
Run Code Online (Sandbox Code Playgroud)
那么还有另一种方法可以在调用中传递第1和第4个参数而不是长列表空格吗?
或者还有其他标准方法吗?
我有一个PHP函数:
function TicketsDisplay($status, $company = '', $contact = '', $show_status_name = 'no', $StatusColour = '000000', $StatusHeaderFontColour = '#FFFFFF', $FontColour = '#000000' ) {
...
}
Run Code Online (Sandbox Code Playgroud)
我在这里跑:
<?php TicketsDisplay('Customer Reply',$_GET["seq"]); ?>
Run Code Online (Sandbox Code Playgroud)
我想补充一下
$order = 'datetime DESC';
Run Code Online (Sandbox Code Playgroud)
作为函数的参数,但我如何确保当我添加到最后它不显示错误,因为其他参数是空白
更新:
如果我的功能如下:
function TicketsDisplay($status, $company = '', $contact = '', $show_status_name = 'no', $StatusColour = '000000', $StatusHeaderFontColour = '#FFFFFF', $FontColour = '#000000', $order = 'datetime DESC' ) {
...
}
Run Code Online (Sandbox Code Playgroud)
我把我的功能称为:
<?php TicketsDisplay('Customer Reply',$_GET["seq"],'sequence ASC'); ?>
Run Code Online (Sandbox Code Playgroud)
肯定会认为结束参数是$contact?