我想知道如下的函数/算法: (这是在Lua)
function new_format(str, ...)
if not str then return '' end
local replace = {...}
local count = 1
local formatted = str:gsub('*', function()
if replace[count] then
local rep = replace[count]
count = count + 1
if type(rep) == 'Player' then
return rep:Name()
end
return rep
end
return ''
end)
return formatted
上面的代码基本上是通过字符串,并替换'*',然后转到表的下一个索引,依此类推。
例如
local str = 'Hello *, my name is * :D'
print(new_format(str, 'Stackoverflow', 'bizzy'))
上面的代码会输出: Hello Stackoverflow,我叫bizzy:D
我的问题是,如果有办法在php中做同样的事情吗?