亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    @PHP基礎(chǔ)之字符串(2)

    string 是一系列字符。在 PHP 中,字符和字節(jié)一樣,也就是說(shuō),一共有 256 種不同字符的可能性。這也暗示 PHP 對(duì) Unicode 沒(méi)有本地支持。請(qǐng)參閱函數(shù) utf8_encode() 和 utf8_decode() 以了解有關(guān) Unicode 支持。

    AD:

     

    變量解析

    當(dāng)用雙引號(hào)或者定界符指定字符串時(shí),其中的變量會(huì)被解析。

    有兩種語(yǔ)法,一種簡(jiǎn)單的和一種復(fù)雜的。簡(jiǎn)單語(yǔ)法最通用和方便,它提供了解析變量,數(shù)組值,或者對(duì)象屬性的方法。

    復(fù)雜語(yǔ)法是 PHP 4 引進(jìn)的,可以用花括號(hào)括起一個(gè)表達(dá)式。

    簡(jiǎn)單語(yǔ)法

    如果遇到美元符號(hào)($),解析器會(huì)盡可能多地取得后面的字符以組成一個(gè)合法的變量名。如果你想明示指定名字的結(jié)束,用花括號(hào)把變量名括起來(lái)。 

    <?php $beer = 'Heineken'; echo "$beer's taste is great"; // works, "'" is an invalid character for varnames echo "He drank some $beers";  // won't work, 's' is a valid character for varnames echo "He drank some ${beer}s"; // works echo "He drank some {$beer}s"; // works ?> 

    同樣也可以解析數(shù)組索引或者對(duì)象屬性。對(duì)于數(shù)組索引,右方括號(hào)(])標(biāo)志著索引的結(jié)束。對(duì)象屬性則和簡(jiǎn)單變量適用同樣的規(guī)則,盡管對(duì)于對(duì)象屬性沒(méi)有像變量那樣的小技巧。

     'red', 'banana' => 'yellow'); // Works but note that this works differently outside string-quotes echo "A banana is $fruits[banana]."; // Works echo "A banana is {$fruits['banana']}.";  // Works but PHP looks for a constant named banana first // as described below. echo "A banana is {$fruits[banana]}.";  // Won't work, use braces.  This results in a parse error. echo "A banana is $fruits['banana'].";  // Works echo "A banana is " . $fruits['banana'] . ".";  // Works  echo "This square is $square->width meters broad."; // Won't work. For a solution, see the complex syntax. echo "This square is $square->width00 centimeters broad."; 

    對(duì)于任何更復(fù)雜的情況,應(yīng)該使用復(fù)雜語(yǔ)法。

    復(fù)雜(花括號(hào))語(yǔ)法

    不是因?yàn)檎Z(yǔ)法復(fù)雜而稱(chēng)其為復(fù)雜,而是因?yàn)橛么朔椒梢园瑥?fù)雜的表達(dá)式。

    事實(shí)上,用此語(yǔ)法你可以在字符串中包含任何在名字空間的值。僅僅用和在字符串之外同樣的方法寫(xiě)一個(gè)表達(dá)式,然后用 { 和 } 把它包含進(jìn)來(lái)。因?yàn)椴荒苻D(zhuǎn)義“{”,此語(yǔ)法僅在 $ 緊跟在 { 后面時(shí)被識(shí)別(用“{$”或者“{$”來(lái)得到一個(gè)字面上的“{$”)。用一些例子可以更清晰:

    <?php // Let's show all errors error_reporting(E_ALL);  $great = 'fantastic';  // 不行,輸出為:This is { fantastic} echo "This is { $great}";  // 可以,輸出為:This is fantastic echo "This is {$great}"; echo "This is ${great}";  // Works echo "This square is {$square->width}00 centimeters broad.";  // Works echo "This works: {$arr[4][3]}"; // This is wrong for the same reason as $foo[bar] is wrong // outside a string.  In otherwords, it will still work but // because PHP first looks for a constant named foo, it will // throw an error of level E_NOTICE (undefined constant). echo "This is wrong: {$arr[foo][3]}"; // Works.  When using multi-dimensional arrays, always use // braces around arrays when inside of strings echo "This works: {$arr['foo'][3]}";  // Works. echo "This works: " . $arr['foo'][3];  echo "You can even write {$obj->values[3]->name}";  echo "This is the value of the var named $name: {${$name}}"; ?> 

    訪問(wèn)字符串中的字符

    字符串中的字符可以通過(guò)在字符串之后用花括號(hào)指定所要字符從零開(kāi)始的偏移量來(lái)訪問(wèn)。

    注: 為了向下兼容,仍然可以用方括號(hào)。不過(guò)此語(yǔ)法在 PHP 4 中不贊成使用。

    例子 11-3. 一些字符串例子

    <?php // Get the first character of a string $str = 'This is a test.'; $first = $str{0}; // Get the third character of a string $third = $str{2};  // Get the last character of a string. $str = 'This is still a test.'; $last = $str{strlen($str)-1}; ?> 

    實(shí)用函數(shù)及操作符

    字符串可以用“.”(點(diǎn))運(yùn)算符連接。注意這里不能用“+”(加)運(yùn)算符。更多信息參見(jiàn)字符串運(yùn)算符。

    有很多實(shí)用函數(shù)來(lái)改變字符串。

    普通函數(shù)見(jiàn)字符串函數(shù)庫(kù)一節(jié),高級(jí)搜索和替換見(jiàn)正則表達(dá)式函數(shù)(兩種口味:Perl 和 POSIX 擴(kuò)展)。

    還有 URL 字符串函數(shù),以及加密/解密字符串的函數(shù)(mcrypt 和 mhash)。

    最后,如果還是找不到你要的函數(shù),參見(jiàn)字符類(lèi)型函數(shù)庫(kù)。

    字符串轉(zhuǎn)換

    您可以用 (string) 標(biāo)記或者 strval() 函數(shù)將一個(gè)值轉(zhuǎn)換為字符串。當(dāng)某表達(dá)式需要字符串時(shí),字符串的轉(zhuǎn)換會(huì)在表達(dá)式范圍內(nèi)自動(dòng)完成。例如當(dāng)你使用 echo() 或者 print() 函數(shù)時(shí),或者將一個(gè)變量值與一個(gè)字符串進(jìn)行比較的時(shí)候。閱讀手冊(cè)中有關(guān)類(lèi)型和類(lèi)型戲法中的部分有助于更清楚一些。參見(jiàn) settype()。

    布爾值 TRUE 將被轉(zhuǎn)換為字符串 “1”,而值 FALSE 將被表示為 “”(即空字符串)。這樣您就可以隨意地在布爾值和字符串之間進(jìn)行比較。

    整數(shù)或浮點(diǎn)數(shù)數(shù)值在轉(zhuǎn)換成字符串時(shí),字符串即為表示這些數(shù)值數(shù)字(浮點(diǎn)數(shù)還包含有指數(shù)部分)。

    數(shù)組將被轉(zhuǎn)換成字符串 “Array”,因此您無(wú)法通過(guò) echo() 或者 print() 函數(shù)來(lái)輸出數(shù)組的內(nèi)容。請(qǐng)參考下文以獲取更多提示。

    對(duì)象將被轉(zhuǎn)換成字符串 “Object”。如果您因?yàn)檎{(diào)試需要,需要將對(duì)象的成員變量打印出來(lái),請(qǐng)閱讀下文。如果您希望得到該對(duì)象所依附的類(lèi)的名稱(chēng),請(qǐng)使用函數(shù) get_class()。

    資源類(lèi)型將會(huì)以 “Resource id #1” 的格式被轉(zhuǎn)換成字符串,其中 1 是 PHP 在運(yùn)行時(shí)給資源指定的唯一標(biāo)識(shí)。如果您希望獲取資源的類(lèi)型,請(qǐng)使用函數(shù) get_resource_type().

    NULL 將被轉(zhuǎn)換成空字符串。

    正如以上所示,將數(shù)組、對(duì)象或者資源打印出來(lái),并不能給您提供任何關(guān)于這些值本身的有用的信息。請(qǐng)參閱函數(shù) print_r() 和 var_dump(),對(duì)于調(diào)試來(lái)說(shuō),這些是更好的打印值的方法。

    您可以將 PHP 的值轉(zhuǎn)換為字符串以永久地儲(chǔ)存它們。這種方法被稱(chēng)為串行化,您可以用函數(shù) serialize() 來(lái)完成該操作。如果您在安裝 PHP 時(shí)建立了 WDDX 支持,您還可以將 PHP 的值串行化為 XML 結(jié)構(gòu)。

    字符串轉(zhuǎn)換為數(shù)值

    當(dāng)一個(gè)字符串被當(dāng)作數(shù)字來(lái)求值時(shí),根據(jù)以下規(guī)則來(lái)決定結(jié)果的類(lèi)型和值。

    如果包括“.”,“e”或“E”其中任何一個(gè)字符的話,字符串被當(dāng)作 float 來(lái)求值。否則就被當(dāng)作整數(shù)。

    該值由字符串最前面的部分決定。如果字符串以合法的數(shù)字?jǐn)?shù)據(jù)開(kāi)始,就用該數(shù)字作為其值,否則其值為 0(零)。合法數(shù)字?jǐn)?shù)據(jù)由可選的正負(fù)號(hào)開(kāi)始,后面跟著一個(gè)或多個(gè)數(shù)字(可選地包括十進(jìn)制分?jǐn)?shù)),后面跟著可選的指數(shù)。指數(shù)是一個(gè)“e”或者“E”后面跟著一個(gè)或多個(gè)數(shù)字。

    <?php $foo = 1 + "10.5";                // $foo is float (11.5) $foo = 1 + "-1.3e3";              // $foo is float (-1299) $foo = 1 + "bob-1.3e3";          // $foo is integer (1) $foo = 1 + "bob3";                // $foo is integer (1) $foo = 1 + "10 Small Pigs";      // $foo is integer (11) $foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2) $foo = "10.0 pigs " + 1;          // $foo is float (11) $foo = "10.0 pigs " + 1.0;        // $foo is float (11) ?> 

    此轉(zhuǎn)換的更多信息見(jiàn) Unix 手冊(cè)中關(guān)于 strtod(3) 的部分。

    如果你想測(cè)試本節(jié)中的任何例子,可以拷貝和粘貼這些例子并且加上下面這一行自己看看會(huì)發(fā)生什么:

    <?php echo "$foo==$foo; type is " . gettype ($foo) . " n"; ?>  

    不要指望在將一個(gè)字符轉(zhuǎn)換成整型時(shí)能夠得到該字符的編碼(您可能也會(huì)在 C 中這么做)。如果您希望在字符編碼和字符之間轉(zhuǎn)換,請(qǐng)使用 ord() 和 chr() 函數(shù)。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)