function myfunction( $arg = array() )
{
// do stuff to $arg...
// return a $string;
}
到目前为止很简单,但我需要格式化$arg数组中的一些字符串,而有些字符串仍未格式化.我弄不清楚该怎么办?
假设我通过myfunction()运行这个$arg:
echo myfunction( array( 'format me!', 'do not format me!' ) );
我的小脑子无法弄清楚如何告诉myfunction()$arg数组中的第一个值需要格式化,并且它不应该格式化第二个值.
我想过一个关联数组,但我认为这可能是错误的方法,因为它具有相同的索引.
echo myfunction( array( 'format' => 'hi', 'format' => 'bye', 'noformat' => 'foo');
只是朝着正确的方向寻找“轻推”.
编辑1:
忘了提一下,我只能有一个$arg数组,因为我需要按特定顺序键.
编辑2:
$arg数组可以拥有用户想要的密钥.
解决方法:
你可以做:
function myfunction(array $format, array $noformat) {
...
}
要么
function myfunction(array $strings) {
foreach ($strings['format'] as $format) {
// do stuff
}
foreach ($strings['noformat'] as $noformat) {
// do stuff
}
}
有:
myfunction(array(
'format' => array('one', 'two', 'three'),
'noformat' => array('four', 'five', 'six'),
));
如果(且仅当)字符串是唯一的,您可以将它们放在键中而不是值中:
$strings = array(
'one' => true,
'two' => false,
'three' => false,
'four' => true,
);
myfunction($strings);
有:
function myfunction(array $strings) {
foreach ($strings as $k => $v) {
if ($v) {
// format string
}
}
}
但是,由于你没有重复键,如果你有重复的字符串,这种方法就会失败.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。