zephir-(4)基本語法

#zephir-基本語法#php

##前言## 先在這裏感謝各位zephir開源技術提供者c++

每一個語言都有它的語法,每一個語言都有他的結構,那麼今天就來和小編來討論zephir的文件結構和命名空間,變量聲明, 一些語法習慣,和一些其餘的概念。git

注:筆者水平有限,說的不正確的地方但願你們多多指正,一同交流技術github

附上:優化

喵了個咪的博客:w-blog.cnthis

zephir官網地址:http://zephir-lang.com/spa

github地址:https://github.com/phalcon/zephircode

##1. 基本語法結構##router

在PHP中,您能夠將任何文件中的代碼沒有一個特定的結構。但在Zephir中,每一個文件必須包含一個類。每一個類必須有一個名稱空間和目錄結構必須匹配,類的名稱和名稱空間配合使用。blog

###1.1 文件結構和命名空間###

例如,給出下面的結構,每一個文件都必須的類:

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

mylibrary / router.zep:

namespace MyLibrary;

class Router
{

}

MyLibrary\Router\exception.zep:

namespace MyLibrary\Router;

class Exception extends \Exception
{

}

注意:Zephir若是文件或類不是位於預期的文件會提示編譯器異常.

###1.2 指令分離###

您可能已經注意到,不多有分號出如今前一章中的代碼示例。 您可使用分號來分隔語句和表達式,如Java、C / c++、PHP和相似的語言:

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

###1.3 註釋###

Zephir支持「C」/「c++」註釋,一行註釋和//多行註釋以/*…… */:

// this is one line comment

/**
 * multi-line comment
 */

在大多數語言中,註釋會被文本被編譯器/解釋器忽略。 在Zephir, 多行註釋也用做docblocks,它會生成代碼, 他們語言的一部分!

注意:若是不是docblock預計的結果編譯器將拋出一個異常。

##2 變量##

###2.1 變量聲明###

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, SomeValue;

###2.2 變量做用域###

全部變量聲明的局部做用域都是方法級別的:

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;
    }

}

###2.3 超級全局變量 ###

Zephir不支持全局變量,從PHP用戶訪問全局變量是不容許的。 然而,您能夠訪問PHP的超全局變量以下:

//Getting a value from _POST
let price = _POST["price"];

//Read a value from _SERVER
let requestMethod = _SERVER["REQUEST_METHOD"];

###2.4 符號###

每個用PHP符號,而且容許寫變量寫在一個符號上面解析:

<?php

$b = 100;
$a = "b";
echo $$a; // prints 100

Zephir沒有實現這個功能,由於全部變量編譯到低級變量 也沒有辦法知道哪些變量存在於一個特定的上下文。 若是你想創造 一個變量在當前的PHP符號表中,你可使用下面的語法:

//設置在PHP變量$的名字
let {"name"} = "hello";

//在PHP中設置變量$的值
let name = "price";
let {name} = 10.2;

##3. 總結##

注:筆者能力有限有說的不對的地方但願你們可以指出,也但願多多交流!

今天咱們主要了解了zephir的文件規範,已經變量註釋符號這些特性,下一小節將會對類型進行詳解,謝謝你們的支持

zephir技術交流:246348908 歡迎你們的加入!

感謝zephir開發人員:

相關文章
相關標籤/搜索