PHP 5.3/6 新增功能 – Late Static Bindings PHP5.3/6.0 新增延後靜態繫結(late static bindings)功能

石頭閒語:PHP 5.3/6 新增功能 – Late Static Bindings – 樂多日誌

PHP 5.3/6 新增功能 – Late Static Bindings

PHP5.3/6.0 新增延後靜態繫結(late static bindings)功能。 此功能由關鍵字 static 實現,係對照 self 之功能而出現。

self 關鍵字採用儘早靜態繫結策略,PHP 在解譯語法時,就直接將 self 繫結到它所在的類別。static 關鍵字採用延後靜態繫結(late static bindings)策略,要等到執行到那一段敘述時, PHP 才會根據調用者所屬類別來設定 static 所代表的類別。

Built-in Managed Code Analysis Rules

.NET Midway: Built-in Managed Code Analysis Rules

Built-in Managed Code Analysis Rules

資料來源:Prefessional Application Lieftcycle Management with Visual Studio 2010

Table : Groups of Rules
規則群組 (規則數目)

描述
Design (62) 基本上focus在程式碼的結構及介面。這個群組要求類別、事件、集合及參數都按照一般的觀念適當的實作。
你可以依照 Design Guidelines for Class Library Developers 解決這一類的問題。

三十行C程式碼做regular expression的match

三十行C程式碼做regular expression的match – 網站服務開發 – Inside 論壇

出處:http://www.cs.princeton.edu/cour … s333/beautiful.html
/* match: search for regexp anywhere in text */
    int match(char *regexp, char *text)
    {
        if (regexp[0] == ‘^’)
            return matchhere(regexp+1, text);
        do {    /* must look even if string is empty */
            if (matchhere(regexp, text))
                return 1;
        } while (*text++ != “);
        return 0;
    }

    /* matchhere: search for regexp at beginning of text */
    int matchhere(char *regexp, char *text)
    {
        if (regexp[0] == “)
            return 1;
        if (regexp[1] == ‘*’)
            return matchstar(regexp[0], regexp+2, text);
        if (regexp[0] == ‘$’ && regexp[1] == “)
            return *text == “;
        if (*text!=" && (regexp[0]==’.’ || regexp[0]==*text))
            return matchhere(regexp+1, text+1);
        return 0;
    }

    /* matchstar: search for c*regexp at beginning of text */
    int matchstar(int c, char *regexp, char *text)
    {
        do {    /* a * matches zero or more instances */
            if (matchhere(regexp, text))
                return 1;
        } while (*text != " && (*text++ == c || c == ‘.’));
        return 0;
    }