使用lua实现php的print_r()函数功能
之前写了一些类似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学习之输出字符串(echo,print,printf,print_r和var_dump)
下面一一进行介绍. 1. echo echo 是PHP的一个关键字,它没有返回值.在写法上,它可以省略小括号.如下代码: 复制代码 代码如下: echo 'Test String'; echo('Test String'); 2. print print 也是PHP的一个关键字,它有返回值,一般返回true,返回false的情况应该没有.在写法上,它和echo一样,可以省略小括号.如下代码: 复制代码 代码如下: print 'Test String'; print('Test String')
-
PHP echo,print,printf,sprintf函数之间的区别与用法详解
1. echo函数: 输出函数,是命令,不能返回值.echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"<b>bold</b>"; 2. print函数: 是函数,可以返回一个值,只能有一个参数. int print ( string arg ) Outputs arg . Returns 1 , always. 3. printf函数: int printf ( string format [, m
-
php中理解print EOT分界符和echo EOT的用法区别小结
html与php编写中echo可以同时输出多个字符串,并不需要圆括号. print只可以同时输出一个字符串,需要圆括号. print的用法和C语言很像,所以会对输出内容里的%做特殊解释. echo无返回值,print()有返回值,当其执行失败(比如断线)时返回flase . echo可以多个参数,print一个参数.推荐用echo. 看下面的例子就能明白php中print <<<EOT是干什么用的了: 复制代码 代码如下: print <<<EOT <html&g
-
php中print(),print_r(),echo()的区别详解
echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print() 只能打印出简单类型变量的值(如int,string) print_r() 可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 print --输出一个字符串 Description int print ( string arg )//返回值为整形 print " 你好朋友" ; 可以进行下面操作 复制代码 代码如下:
-
PHP中echo,print_r与var_dump区别分析
本文较为详细的分析了PHP中echo,print_r与var_dump区别.分享给大家供大家参考.具体分析如下: 三者都是具有输出功能的php语句,但print_r(expression),var_dump(expression)是函数,echo只是语言结构,不是函数,因此不能作为表达式的一部分. 对于操作php的8种数据类型来说: ① echo 用于输出数值变量或者是字符串.但使用echo来输出引用变量时,如数组,仅输出数组的名字:当输出一个对象时,服务器提示<Catchable fatal
-
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
用.net开发已经5年了,最近突然想接触一下.net以外的东西,于是乎就来看看php了.在学习php中首先看看几个输出函数.一.echoecho() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void的,并不返回值,所以不能使用它来赋值.例子: 复制代码 代码如下: <?php $a = echo("55nav"); // 错误!不能用来赋值 echo &quo
-
用js写了一个类似php的print_r输出换行功能
复制代码 代码如下: <script type="text/javascript"> <!-- var my={ str:'', deep:0, block:' ', get_pre:function(n) { pre=''; for(i=0;i<n;i++) { pre+=this.block; } return pre; }, show_obj:function(obj) { for(k in obj) { if(typeof(obj[k])!='objec
-
用nodejs实现PHP的print_r函数代码
复制代码 代码如下: function ergodic(obj,indentation){ var indent = " " + indentation; if(obj.constructor == Array || obj.constructor == Object){ for(var p in obj){ if(obj[p].constructor == Array|| obj[p].constructor == Object){ console.lo
-
使用lua实现php的print_r()函数功能
之前写了一些类似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 '['..n
-
使用lua实现php的var_dump()函数功能
习惯了php中的var_dump()函数,而如今写lua的时候总习惯使用var_dump()函数,于是就自己动手写了一个类似功能的var_dump()函数. 复制代码 代码如下: function var_dump(data, max_level, prefix) if type(prefix) ~= "string" then prefix = "" end if type(data) ~= "tab
-
Lua 数学库的所有函数功能作用一览
math.pi 为圆周率常量 = 3.14159265358979323846 abs 取绝对值 math.abs(-15) 15 acos 反余弦函数 math.acos(0.5) 1.04719755 asin 反正弦函数 math.asin(0.5) 0.52359877 atan2 x / y的反正切值 math.atan2(90.0, 45.0) 1.10714871 atan 反正切函数 math.atan(0.5) 0.463647609 ceil 不小于x的最大整数 math.c
-
php实现excel中rank函数功能的方法
本文实例讲述了php实现excel中rank函数功能的方法.分享给大家供大家参考.具体分析如下: sql语句实现排名是像这样的如: 总分成绩为 195,180,180,161,名次分别为1,2,3,4,遇到并列的情况也是按照顺序的, 而Excel函数rank排名得到的结果是1,2,2,4,遇到并列跳过中间的3 下面的函数模拟的就是这种情况 函数如下(不知道有没有更好的实现方法): 公式为: 名次=总人数--比自己小的数的个数-这个分数重复次数+1(加上自己) 得到名次的数组再根据对应的id写入到
-
MySQL数据库开启、关闭、查看函数功能的方法
应用 MySQL 时,会遇到不能创建函数的情况.出现如下错误信息: 复制代码 代码如下: ERROR 1418 : This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators varia
-
函数名称 函数功能
函数名称 函数功能Cbool(string) 转换为布尔值Cbyte(string) 转换为字节类型的值Ccur(string) 转换为货币类值Cdate(string) 转换为日前类型的值Cdbl(string) 转换为双精度值Cint(string) 转换为整数值Clng(string) 转换为长整型的值Csng(string) 转换为单精度的值Cstr(var) 转换为字符串值Str(var) 数值转换为字符串Val(string) 字符串转换为数值****** ************
-
原生JS写Ajax的请求函数功能
一般我们写网页的时候,如果用到 Ajax 请求服务器,都是使用 JQuery 等已经封装好的库来调用,比较简单. 但是一般这些库的功能很多,引入了太多我们用不到的东西,如果我们需要写一个功能单一,简单的页面,完全用不到引用如此庞大的库文件. 我们可以简单实现一个自己的 Ajax 请求功能,具体的代码如下: var ajax = {}; ajax.x = function () { if (typeof XMLHttpRequest !== 'undefined') { return new XM
-
Python实现的调用C语言函数功能简单实例
本文实例讲述了Python实现的调用C语言函数功能.分享给大家供大家参考,具体如下: 实例参考python cookbook 中的15.1节中的例子P612页 先把 c文件编译成 so文件 gcc a.c -fpic -shared -o lib.so 通过上面编译成so文件 利用ctypes模块. from ctypes import cdll a=cdll.LoadLibrary("./lib.so") a.say() 能过上面代码测试通过. 更多关于Python相关内容感兴趣的读
-
Python定义函数功能与用法实例详解
本文实例讲述了Python定义函数功能与用法.分享给大家供大家参考,具体如下: 1.函数的意义 一般数学上的函数是,一个或者几个自变量,通过某种计算方式,得出一个因变量. y = f(x) 在Python中,为了使操作更加简洁,就引入了函数这个概念. Python中的函数,可以把一大串要反复使用的代码"定义"(封装)成一个函数,给予这个函数一个标识符作为函数名,设置自变量和因变量.然后要使用这一大串代码的时候,就调用这个我们自己创造的函数,输入自变量,然后会返回给我们因变量. 2.函数
-
JS立即执行函数功能与用法分析
本文实例讲述了JS立即执行函数功能与用法.分享给大家供大家参考,具体如下: 相信大家经常会遇到下面这两种写法: (function(){ ... })() 和 (function(){ ... }()) 关于这样写是什么意思呢?有什么区别呢? 在此之前,我们需要了解几个概念: 函数声明.函数表达式.匿名函数 函数声明: function fnName() {...} ; 使用 function 关键字声明一个函数,再执行一个函数名,叫函数声明. 函数表达式: var fnName = funct
随机推荐
- AngularJS 控制器 controller的详解
- vbs判断磁盘类型和检测硬盘剩余空间的实现代码
- js replace正则表达式应用案例讲解
- C# 添加Word文本和图片超链接的方法
- java中servlet实现登录验证的方法
- Oracle 存储过程加密方法
- jquery 中多条件选择器,相对选择器,层次选择器的区别
- javascript实现的仿51job地址多项选择方式效果
- python 获取文件列表(或是目录例表)
- 在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据
- thinkPHP订单数字提醒功能的实现方法
- Python实现根据IP地址和子网掩码算出网段的方法
- js中单引号与双引号冲突问题解决方法
- PHP var_dump遍历对象属性的函数与应用代码
- php学习笔记 面向对象的构造与析构方法
- Javascript this指针
- 用vbs实现的XP序列号替换器
- 在Python中使用swapCase()方法转换大小写的教程
- sqlserver 索引的一些总结
- JavaScript 语言基础知识点总结(思维导图)