PHP咋个让中间的参数用它的默认值?
<i class="pstatus"> 本帖最后由 wawos 于 2025-1-2 00:08 编辑 </i><br /><div class="blockcode"><div id="code_xT2"><ol><li><?php<br /><li>function zz ($a, $b='ok', $c) echo $a.$b.$c;<br /><li>zz ('x', NULL, 'z');<br /><li>?><br /><li><br /><li>输出显示: xz<br /><li><br /><li>想要的是显示: xokz</ol></div><em onclick="copycode($('code_xT2'));">复制代码</em></div> 不说php,一般的语言都不支持.<br />
你可以省略,但不可以传NULL.<br />
它是有意义的.比如函数体内需要判断$b为空.<br />
<br />
<div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16163061&ptid=1379380" target="_blank"><font color="#999999">奧巴马 发表于 2025-1-2 00:03</font></a></font><br />
不说php,一般的语言都不支持.<br />
你可以省略,但不可以传NULL.<br />
它是有意义的.比如函数体内需要判断$b为空.</blockquote></div><br />
<br />
C++, 易语言都支持啊, 可以中间参数不写: zz ('x', , 'z');$b就会是 ok<br />
<br />
但是php中间参数不写的话报错, 即使写null也会把$b变成null了<br />
<br />
想的是上面输出: xokz 你再加个判断为空或者空串再给个默认值,别的语言是给你参考不是直接拿来用的 带默认值的,一般都需要放置在最后,$c也设置一个默认值,如$c=''就可以了吧 <div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16163065&ptid=1379380" target="_blank"><font color="#999999">wawos 发表于 2025-1-2 00:07</font></a></font><br />
C++, 易语言都支持啊, 可以中间参数不写: zz ('x', , 'z');$b就会是 ok<br />
<br />
但是php中间参数不写的话报错, ...</blockquote></div><br />
C++, 易语言都支持,那你就去用C++, 易语言 <i class="pstatus"> 本帖最后由 cmcc-edu 于 2025-1-2 01:50 编辑 </i><br />
<br />
直接给你gpt的问答<br />
<br />
<ignore_js_op>
<img src="https://hostloc.com/static/image/filetype/image.gif" border="0" class="vm" alt="" />
<span style="white-space: nowrap" id="attach_172233" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})">
<a href="https://hostloc.com/forum.php?mod=attachment&aid=MTcyMjMzfDBlNjdhNWI4fDE3MzU4OTgxNDJ8MHwxMzc5Mzgw" target="_blank">1212.jpg</a>
<em class="xg1">(22.85 KB, 下载次数: 0)</em>
</span>
<div class="tip tip_4" id="attach_172233_menu" style="position: absolute; display: none" disautofocus="true">
<div class="tip_c xs0">
<div class="y"><span title="2025-1-2 01:47">昨天01:47</span> 上传</div>
点击文件名下载附件
</div>
<div class="tip_horn"></div>
</div>
</ignore_js_op>
<br />
<br />
在 PHP 中,函数参数的默认值必须出现在没有默认值的参数之后。换句话说,像这样定义的函数是无效的:<br /><div class="blockcode"><div id="code_f8X"><ol><li><br /><li>function zz($a, $b='ok', $c)<br /><li></ol></div><em onclick="copycode($('code_f8X'));">复制代码</em></div><br />
<br />
这是因为 $b 有默认值 'ok',但是它被放在了 $c 之前,而 $c 没有默认值。这会导致 PHP 报错。<br />
<br />
<br />
<strong><font face="黑体"><font size="5"><strong>解决方法</strong></font></font></strong><br />
可以通过调整参数的顺序来修复这个问题,确保默认值的参数在没有默认值的参数之后。你可以将 $c 放在 $b 之前,并为 $b 提供默认值。调整后的代码如下:<br />
<br /><div class="blockcode"><div id="code_d4n"><ol><li><br /><li>function zz($a, $c, $b='ok') {<br /><li>echo $a . $b . $c;<br /><li>}<br /><li>zz('x', 'z');<br /><li></ol></div><em onclick="copycode($('code_d4n'));">复制代码</em></div><br />
<br />
<strong><font face="黑体"><font size="5">解释:</font></font></strong><br />
<br />
1、在这个版本中,$a 和 $c 是必须传入的参数,$b 是可选的,默认值为 'ok'。<br />
2、在调用 zz('x', 'z') 时,$a 被赋值为 'x',$c 被赋值为 'z',而 $b 使用默认值 'ok'。<br />
这样,输出就会是你想要的 xokz 如果是php8的话, 可以这么用: zz ('aaaa', c: 'ccccccc') 改一下就好了<br />
<br /><div class="blockcode"><div id="code_JR2"><ol><li>function zz($a, $b, $c) {<br /><li>if ($b === NULL) {<br /><li>$b = 'ok';<br /><li>}<br /><li>echo $a . $b . $c;<br /><li>}<br /><li><br /><li>zz('x', NULL, 'z');<br /><li></ol></div><em onclick="copycode($('code_JR2'));">复制代码</em></div> <div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16163130&ptid=1379380" target="_blank"><font color="#999999">cmcc-edu 发表于 2025-1-2 01:46</font></a></font><br />
直接给你gpt的问答</blockquote></div><br />
那这样可以吗 function zz($a, $b='ok', $c='yes')<br />
<br />
后面2个都是可以省略有默认值的参数,<br />
<br />
可以运行时第二个参数用它的默认值,第三个$c用自己传入的<div class="quote"><blockquote><font size="2"><a href="https://hostloc.com/forum.php?mod=redirect&goto=findpost&pid=16163257&ptid=1379380" target="_blank"><font color="#999999">ywjdlq 发表于 2025-1-2 08:49</font></a></font><br />
如果是php8的话, 可以这么用: zz ('aaaa', c: 'ccccccc')</blockquote></div><br />
php8可以?有这种写法官方说明吗
页:
[1]
2