首先,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
{
}
namespace MyLibrary\Router;
class Router extends Exception
{
}
跟php/c/c++/java一样,zephir也是用 ";"作为语句的终止符,你可以像这样书写:
myObject->myMethod(1, 2, 3); echo "world";
注释也是用//和/**/,这里不再废话。
声明变量
和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;
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"];