项目

aardio

PHP

Javascript

简介

aardio主要用于桌面软件快速开发语言(aardio 也可以象PHP一样用于开发网站。),兼容动态类型、静态类型开发的混合型编程语言,aardio可以生成数百KB的独立EXE,不依赖任何外部运行库.

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言,常常搭配 Apache (web 服务器) 一起使用。PHP 语法非常类似于 Perl

和 C。

在Windows上可以使用 WAMPServer 等自动安装工具方便的创建运行环境,推荐开发工具 Zend Studio,phpDesinger7,Edit

Plus,Notepad++

JavaScript 是因特网上最流行的客户端脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer、

Mozilla、Firefox、Netscape、和 Opera。JavaScript 被用来改进设计、验证表单、检测浏览器、创建cookies等

实现方式

aardio源码文件存储为 *.aardio 格式的文本文件,也可以编译成二进制的 *.aardio

文件,aardio文件可以使用aardio编写的EXE加载运行,也可以在aardio中生成独立的EXE文件。aardio也支持与PHP一样的模板语法,可以将aardio代码置于 开始,以 ?> 结束的标记内,并在标记外放置HTML代码或其他文本。aardio不但可以用这种模板语法开发网站,也可以用于开发桌面软件。

PHP 的脚本块以<?php 开始,以 ?> 结束。您可以把 PHP 的脚本块放置在文档中的任何位置。 当然,在支持简写的服务器上,您可以使用

和 ?> 来开始和结束脚本块。例:<?php /PHP Document…… ?>

HTML 的

language="javascript">// JavaScript Document ……

注释

单行的注释以 // 开始 多行注释以 /* 开头,以 */ 结尾。

在aardio中多行注释的首尾星号数目可以有多个,并且首尾数目必须匹配,使用此特性,只要星号数目不一样,就可以在注释中包含其他多行注释

在aardio中注释语句也可以用于赋值语句作为字符串使用.例如: var str = /*使用多行注释作为字符串换行总是被解释为'\r\n',也就是回车换行*/

单行的注释以 // 开始 多行注释以 /* 开头,以 */ 结尾。

与PHP相同

变量

变量可以不声明直接使用,

使用赋值语句初始化变量。变量默认为当前名字空间成员变量。

变量分为三种:

1、全局变量

2、当前名字空间变量(也可以算是全局变量)

3、局部变是

aardio的变量名也可以使用$符号,

但$是变量名的一部份

局部变量申明用var语句定义

例:var sqlstr; 若不使用var,

则此变量申明为当前名字空间成员变量。

例:color='#111';

使用self可表示当前名字空间,上面的语句等价于self.color = '#111'

在前面加上两点,则变量声明为全局变量,

..color = "#111"

变量可以不声明直接使用,使用赋值语句初始化变量。函数内部变量默认为局部变量。

变量分为三种:

1、全局变量

2、局部变是

PHP 中的所有变量必须以 $ 符号开始。 $号是变量的修饰前缀,但不是变量名称的一部份

在PHP中函数内部变量默认为局部变量(这与aardio,Javascript正好相反),使用 global 语句引入或声明全局变量.

例:

//用global关键字定义全局变量

global$g;

变量可以不声明直接使用,使用赋值语句初始化变量。

变量默认为全局变量。

变量分为三种:

1、全局变量

2、局部变是

Javascript的变量名也可以使用$符号,但$是变量名的一部份,例如在jQuery中$就是jQuery的别名.

局部变量申明用var语句定义

例:var sqlstr;

若不使用var,则此变量申明为全局变量。

例:color='#111';

全局表

global 对象

$GLOBALS 对象

window 对象

定义常量

变量名首字符是下划线表示成员常量

变量名首字符是下划线并大写表示全局常量

变量前面加上::修饰符表示全局常量

常量值赋于任何非null值以后即不可修改为其他不同的值

使用 const与define 定义常量,

1、const用于类成员变量定义,一旦定义且不能改变其值。define定义全局常量,在任何地方都可以访问。

2、define不能在类中定义而const可以。

3、const不能在条件语句中定义常量

4、const采用一个普通的常量名称,define可以采用表达式作为名称。

5、const的值只能接受静态的标量,而define可以采用任何表达式。

6、const 总是大小写敏感,然而define()可以通过第三个参数来定义大小写不敏感的常量。

例:

define('≈PI',M_PI);

const CHARSET = "中国";

不支持定义常量( 字面常量除外 )

成员操作符

对象.成员

对象->成员

对象.成员

定义类

//aardio代码:classmyclass{//ctor定义类的构造函数ctor(  ){/*

构造函数中可以用

var语句定义在类作用域内部的私有变量.

*/varprivate = 123;this.name ="张三";this.getName =function(){returnthis.name;

}this.setName =function(name){this.name = name;

}

};//下面的这样增加类实例成员的方法,//javascript是不支持的age = 23;

gohome =function(){

io.print("I'm back")

}

}

//创建类实例对象varobject = myclass()

//PHP代码

classCart{//定义成员变量,//PHP里var可不是定义局部变量的意思var$items = 123;// 购物车中的项目// 把 $num 个 $artnr 放入车中functionadd_item ($artnr, $num){

$this->items[$artnr] += $num;

}// 把 $num 个 $artnr 从车中取出functionremove_item ($artnr, $num){if($this->items[$artnr] > $num) {

$this->items[$artnr] -= $num;returntrue;

}else{returnfalse;

}

}

}

//创建类对象实例

$a = new Cart;

echo $a->items;//注意这里items前面不能再加$符号

//Javascript代码functionmyclass(){this.name ="张三";this.getName =function(){returnthis.name;

}this.setName =function(name){this.name = name;

}

}

JS用new关键字来创建对象实例

obj = new 函数名或对象名

obj = new 函数名(构造参数)

语句

io.print("hello world");

尾部的分号可以省略,函数调用的圆括号不能省略

尾部的分号不能省略,函数调用的括号可以省略.

document.write("Hello world");

尾部的分号可以省略,函数调用的圆括号不能省略

数组定义

有两种数组

数值数组 带有数字 ID 键的数组

var names ={"Peter";"Quagmire";"Joe"};

//创建指定长度数组

array = table.array( 10 )

//创建多维数组

array = table.array(3,5,{} )

关联数组数组中的每个 名字关联一个值

ages

= { Peter = 32 ; Quagmire = 30;Joe=34 };

数组成员也可数组,构成多维数组。

在aardio中只有一种数据结构,即表(table),表可以包含顺序数组,也可以包含稀疏数组,关联数组等

aardio使用分号分隔成员,并使用等号分隔键值对 .

有两种数组类型:

数值数组 带有数字 ID 键的数组

$names = array("Peter","Joe");

关联数组数组中的每个 ID 键关联一个值

$ages = array( "Peter"=>32, "Quagmire"=>30,

"Joe"=>34);

数组成员也可数组,构成多维数组。

PHP使用逗号分隔成员,并使用=> 分隔键值对

有两种数组

数值数组 带有数字 ID 键的数组

var names = ["Peter", "Quagmire", "Joe"];

也可以这样写

var names = new Array("Peter","Quagmire","Joe");

关联数组数组中的每个名字值关联一个值

var ages = [];

ages["peter"] = 32;

ages["Quagmire"] = 30;

数组成员也可数组,构成多维数组。

在javascript还可以使用大括号定义对象,

对象类似aardio中的table(表),也是在大括号中定义:

定义一个Javascript 对象:

var user = {"name":"zhangs", "age":28};

也可以写成:

var name =  "zhangs", user = {name:name, age:28};

avascript使用逗号分隔成员,并使用冒号分隔键值对。

数组元素数量

取数组使用 #操作符

array = table.array( 10 )

数组长度 = #array;

使用 table.range(array ) 则可返回数组的最小,最大索引.

count() 函数计算数组中的单元数目或对象中的属性个数。 对于数组,返回其元素的个数,对于其他值,返回

1。如果参数是变量而变量没有定义,则返回 0。如果 mode 被设置为 COUNT_RECURSIVE(或

1),则会递归底计算多维数组中的数组的元素个数。语法:

count(array,mode)

length 属性可设置或返回数组中元素的数目。

数组的 length 属性总是比数组中定义的最后一个元素的下标大

1。对于那些具有连续元素,而且以元素 0 开始的常规数组而言,属性 length 声明了数组中的元素的个数。语法:arrayObject.length

数组

尾部追加成员

array = {}

table.push( array,"追加成员" ) //返回数组长度

$names = array("Peter","Joe");

names[] = "Quagmire";

//也可以这样写

array_push($names, "apple", "apple2");

var a = [1,2,3,4,5];

var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7

数组尾部弹出成员

table.pop( 数组对象,弹出个数)

用于删除并返回数组的指定个数元素,如果个数为负数表示弹出元素反向排列。

如果省略第二个参数,则与PHP,Javascript用法一样,弹出最后一个元素。

arrayObject.pop()

用于删除并返回数组的最后一个元素

array_pop(数组对象)

弹出并返回 array 数组的最后一个成员

截取数组

table.slice( 数组对象,开始位置,结束位置)

返回截取数组

array_slice ( 数组对象, 开始位置,长度)

返回截取数组,注意第二个参数是指定长度,而不是结束位置

数组对象.slice(开始位置,结束位置)

返回截取数组

定义函数

function函数名(参数){return返回值,返回值2

}aardio函数可以返回多个值

function函数名(参数){return返回值

}

function函数名(参数){return返回值

}

定义字符串

字符串可以放入单引号或双引号, 在双引号中不支持转义符,在单引号中可使用转义符.例:

str = "abcd"

str = 'abcd\t'

aardio中字符串可以直接换行,双引号将换行解释为'\n',而单引号忽略所有换行

字符串可以放入单引号或双引号

$str = "abcd\t"

$str = 'abcd'

双引号中支持转义符,但单引号不支持,与aardio正好相反.这也意味着,单引号速度比双引号解析字符串的速度更快

字符串可以放入单引号或双引号,都支持转义符

var str = "abcd\t"

var str = 'abcd\t'

字符串连接

使用两个加号连接

var str = "字符串" ++  "字符串"

连接字符串字面量时也可以省略为一个加号,例:

var str = "字符串" + "字符串"

使用一个圆点连接

$str = "字符串"."字符串"

使用加号连接

var str = "字符串" + "字符串"

字符串分割

用法示例:

var数组 = string.split("a,b,c,d",",")

explode– 将字符串分割到数组中

说明:

array explode ( string pattern, string string

[, int limit])

注: php中也有split函数,但使用正则表达式分割,其他用法一样,explode()函数速度更快一些

split() 方法用于把一个字符串分割成字符串数组。

语法:

stringObject.split(separator,howmany)

返回部分字符串

用法示例:

varstr = string.sub("12345",2,5)

substr() 函数返回字符串的一部分。

语法:

substr(string,start,length)

substr() 方法可在字符串中抽取

从 start 下标开始的指定数目的字符。

语法:

stringObject.substr(start,length)

模式匹配

aardio使用一种快速轻量的模式匹配语法,基本语法基本类似正则表达式,但是速度更快,使用更简单,并且所有aardio函数默认支持

另外通过标准库 string.regex 也可以支持正则表达式.

支持正则表达式

支持正则表达式

数学函数

所有数学函数都在math名字空间

io.open() //下取整

io.print( math.floor(5.1) )

floor() 函数向下舍入为最接近的整数。 语法: floor(x)返回不大于 x 的下一个整数,将 x

的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。实例:<?php

echo(floor(5.1)); ?>

floor() 方法可对一个数进行下舍入。 语法: Math.floor(x)floor()

方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。实例:

document.write(Math.floor(5.1) + "
")

数学函数

语法:math.round(x,prec)返回将 x 根据指定精度 prec

(十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值)。

round() 函数对浮点数进行四舍五入。 语法:round(x,prec)返回将 x 根据指定精度 prec

(十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值)。实例:<?phpecho (round(0.49)); ?>

round() 方法可把一个数字舍入为最接近的整数。 语法:Math.round(x)与 x 最接近的整数。实例:

aardio怎么运行php,aardio相关推荐

  1. aardio教程_官方AARDIO课程已经开课了!学习的速来报道!

    aardio视频培训课程(2018新版) 因为课程都是制作视频 - 所以上课时间不受限制. 1.本次课程共计50节视频课程,每周一课,培训时间为一年(1月15日以后报名按报名交费时间开始计算). 2. ...

  2. 请教税控开票数据aardio如何连接

    最近全国税控开票系统升级2.0版,很多企业财务都是从开票系统汇总开票数据的,开发商航天出的软件很坑,企业录入的数据不让导出 从官方问题解答中得知数据库是cc3268.dll, 但不知如何连接 通过反编 ...

  3. aardio - 动态视频桌面

    用aardio做动态视频桌面,全网首发,就问你:炫不炫!! 如果您运行了各种桌面管理软件,请先关闭,不然看不到效果. 复制以下代码,运行后,看看桌面,炫不炫! import fonts.fontAwe ...

  4. 各编程语言 + aardio 相互调用示例(简易代码)

    代码都很简单,复制可直接运行.aardio 快速调用 C,C++,C#,Java,R,V,Python,JavaScript,Node.js,Rust,PHP,Ruby,PowerShell,Fort ...

  5. <有搞头>---aardio+Python

    <有搞头>---aardio+Python 原因和目的: 准备材料: 运行: 发布: 测试(装X): 原因和目的: 强大的代码需要一个简单的操作界面.研究如下,与民同乐: 1.人生苦短,我 ...

  6. aardio + AutoHotkey 混合编程

    本文主要介绍 aardio + AutoHotkey 混合编程. 在 aardio 中可以调用很多编程语言,例如 C语言.C++.C#.Java.Python.R.Javascript.Node.Js ...

  7. aardio中获取网络图片经GDI处理后保存到本地

    import process; import fsys.stream; import gdip.bitmap; import inet.http;//获取一个网络图片 var pngData = in ...

  8. 学习了aardio一天后开发的网络调式工具箱

    无广告,无后台,欢迎提建议 支持: Websocket Server模式,支持群发.单发 Websocket Client 模式 TCP Server 模式,支持群发.单发 TCP Client 模式 ...

  9. aardio名字空间库的扩展方法(一)

    aardio是一款高效的win桌面编程语言,有丰富的类库.名字空间库可供调用.但是在实际开发中,我们仍然免不了对现有的库进行扩展,以适合自己的开发需求.(注意,是扩展,而不是直接修改现有的库,否则ID ...

  10. aardio名字空间库的扩展方法(二)

    接前文. 既然要扩展spaceA库,就需要建立一个新库,并且把spaceA库的成员纳入到新库中,然后再考虑增加一些功能. import test.spaceA;//导入基库 //这样基库的内容就包含在 ...

最新文章

  1. 本地Yum仓库搭建部署
  2. awk 统计数据在文件中的出现次数
  3. 安全是一个系统问题包括服务器安全,信息安全技术题库:信息泄露对于Web服务器的危害在于( )。...
  4. 引用管理器没有程序集_Microsoft弃用远程桌面连接管理器
  5. Maven 配置文件 POM 的常用插件配置代码
  6. 牛客练习赛26 E-树上路径 (树链剖分+线段树)
  7. 如何洗牌 ListT 中的元素?
  8. matlab可以使用词云分析吗,利用豆瓣短评数据生成词云
  9. bzoj1601 灌水
  10. CCNP-17 OSPF试验13(BSCI)
  11. dout java,java socket 发送文件
  12. NOIP模拟赛20161016R2
  13. AcWing 188 武士风度的牛 题解(BFS)
  14. 你有必要不沾计算机一段时间英语,八年级上册英语第一单元背默(人教版)
  15. 整数幂C语言1005,zzuli1005: 整数幂 - 菜鸟头头
  16. 记kafka partition数据量过大导致不能正确重启
  17. 高等数学教程【单变量微积分】内容目录
  18. DEJA_VU3D - Cesium功能集 之 052-模拟卫星轨道(高空)效果
  19. 【LNMP】部署php应用
  20. 家庭暴力妻子想离婚另外一方不肯怎么处理

热门文章

  1. 新旧版MATLAB中的希尔伯特-黄变换(HHT)及其边际谱的求取问题
  2. 七夕表白攻略:程序员的代码情书
  3. Android源码阅读记录
  4. 《廊桥遗梦》这样确切的爱,一生只有一次
  5. php下对港澳台身份证进行验证
  6. 【0514 更新中】CVPR 2019 论文汇总 按方向划分
  7. 电路交换、报文交换、分组交换、异步传输模式等通信交换技术的区别
  8. 【Ubuntu】查询显卡型号
  9. 张成分析(spanning test):portfolio_analysis.Spanning_test
  10. Python | 基础学习(二)函数基础、非数字型变量(列表、元组、字典、字符串)、切片、for循环