主页 > 知识库 > 使用lua实现php的print_r()函数功能

使用lua实现php的print_r()函数功能

热门标签:Linux服务器 呼叫中心市场需求 服务外包 AI电销 地方门户网站 网站排名优化 铁路电话系统 百度竞价排名

之前写了一些类似php的函数,下面再来一个print_r()函数,代码如下:

复制代码 代码如下:

function pr (t, name, indent)  
    local tableList = {}  
    function table_r (t, name, indent, full)  
        local id = not full and name or type(name)~="number" and tostring(name) or '['..name..']'  
        local tag = indent .. id .. ' = '  
        local out = {}  -- result  
        if type(t) == "table" then  
            if tableList[t] ~= nil then  
                table.insert(out, tag .. '{} -- ' .. tableList[t] .. ' (self reference)')  
            else 
                tableList[t]= full and (full .. '.' .. id) or id 
                if next(t) then -- Table not empty  
                    table.insert(out, tag .. '{')  
                    for key,value in pairs(t) do  
                        table.insert(out,table_r(value,key,indent .. '|  ',tableList[t]))  
                    end  
                    table.insert(out,indent .. '}')  
                else table.insert(out,tag .. '{}') end  
            end  
        else 
            local val = type(t)~="number" and type(t)~="boolean" and '"'..tostring(t)..'"' or tostring(t)  
            table.insert(out, tag .. val)  
        end  
        return table.concat(out, '\n')  
    end  
    return table_r(t,name or 'Value',indent or '')  
end  
function print_r (t, name)  
    print(pr(t,name))  
end  
 
local a = {x=1, y=2, label={text='hans', color='blue'}, list={'a','b','c'}}  
 
print_r(a) 

您可能感兴趣的文章:
  • php中理解print EOT分界符和echo EOT的用法区别小结
  • PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
  • 用js写了一个类似php的print_r输出换行功能
  • php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
  • PHP echo,print,printf,sprintf函数之间的区别与用法详解
  • 用nodejs实现PHP的print_r函数代码
  • PHP中echo,print_r与var_dump区别分析
  • php中print(),print_r(),echo()的区别详解

标签:仙桃 湘潭 铜川 湖南 崇左 黄山 兰州 衡水

巨人网络通讯声明:本文标题《使用lua实现php的print_r()函数功能》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266