2014-09-03 53 views
1

我需要指定一些const(終止符)。在utf8中設置ascii const類

文件是UTF8編碼的。

class Base { 
    const PROTO = chr(2) . chr(2) . chr(3) . chr(1); 
    function test($str) { 
    if (substr(str,0,4) == self::PROTO) { 
    ... 
    } 
    } 
} 

至於現在使用後期初始化:

 
public function __construct() { 
    $this->_proto = chr(2) . chr(2) . chr(3) . chr(1); 
}

所以纔有意思,如果有可能做到這一點

回答

1

您可以指定它們作爲字符的八進制的字符串像const PROTO = "\2\2\3\1"或者你更喜歡十六進制const PROTO = "\x2\x2\x3\x1"

chr(n)所做的是返回數字n(以十進制表示法)指定的ASCII字符。如果您先將n轉換爲八進制或十六進制,然後分別用\\x作爲前綴,您可以在double-quoted string中獲得相同的結果。

這裏的例子中所有的數字都保持不變,因爲它們都在8以下,所有三個符號都有相同的數字。如果您想要垂直製表符,您可以將其指定爲chr(11)(十進制),"\xB"(十六進制)或"\13"(八進制)。

http://www.asciitable.com/有一個方便的ASCII表,它給你每個字符的所有三個符號。