2.zephir基础语法

首先,zephir的代码必须放在一个类中,一个文件必须并且只能包含一个类,类必须位于命名空间下。

文件结构

mylibrary/
        router/
                exception.zep # MyLibrary\Router\Exception
        router.zep # MyLibrary\Router





其中router.zep和exception.zep就是代码文件(你可以想象,把.zep换成.php):

先来看Router类,打开router.zep,显示如下:


namespace MyLibrary;

class Router
{

}



而router/exception.zep的代码如下:



namespace MyLibrary\Router;

class Router extends Exception
{

}



到目前为止,语法跟php完全一样,很容易掌握吧。


跟php/c/c++/java一样,zephir也是用 ";"作为语句的终止符,你可以像这样书写:


myObject->myMethod(1, 2, 3); echo "world";



注:可以看到zephir里的变量是没有"$"开头的,在php中应该是$myObject->myMethod(),这是一个区别。


注释也是用//和/**/,这里不再废话。

声明变量

和php不一样,在zephir中使用变量前必须先声明,声明变量是为了让编译器进行优化和验证,并且变量名必须唯一,不能使用保留关键词,先看一个例子:

//在一条指令中声明多个相同类型的变量
var a, b c;

//你也可以每行声明一个
var a;
var b;
var c;



你可以在声明变量时赋初始值,就像这样:
var a = "hello", b = 0, c = 1.0;
int d = 50; bool some = true;



注意,变量名是大小写敏感的,下面这两个变量是不同的:
var somevalue, someValue;



变量只在声明它的方法内有效,这点和php一致,不再废话。
namespace Test;

class MyClass
{

    public function someMethod1()
    {
        int a = 1, b = 2;
        return a + b;
    }

    public function someMethod2()
    {
        int a = 3, b = 4;
        return a + b;
    }

}



超全局变量

zephir不支持php那样的全局变量,但是可以像php那样获取超全局变量,如$_GET $_POST $_SERVER等,语法上如下:

//从$_POST中获取price参数
let price = _POST["price"];

//从 $_SERVER 中获取
let requestMethod = _SERVER["REQUEST_METHOD"];



如你所见,变量赋值用的是let语句,当然你必须提前声明变量。


转载于:https://my.oschina.net/cxz001/blog/220041

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值