首先,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"];