[php] <?php /* 字符串在講變量的時候已經講了,怎麼又要講? 答:之前,只是介紹字符串這種變量類型, 但對於其定義,性質,函數等等,沒有深入的說. 第2: 字符串,在PHP中,是非常非常重要的一個概念. 可以這麼說: 你在開發網站中,想對字符串做某種操作. 基本上你想到的字符串的處理功能,系統都已有相關函數了. 因為PHP自誕生之初,就是為WEB開發而來的, 因為網站開發中,字符串處理 ,是PHP的一大亮點. 第3: 字符串在開發和面試時,也是最頻繁用到的. PHP中,1是字符串,2是數組函數,都非常多,非常好用. */ /* 什麼是字符串? 答:字符串,就是一串字符 羊肉串就是一串羊肉. */ /* 1:如何聲明一個字符串變量 答: 雙引號 單引號 定界符 */ $str1 = "hello"; echo $str1,'<br />'; // $str2 = "hello,"jack" "; // 這個字符串,是一個新聞標題,標題裡很容易又出現雙引號. /** 思考: 用雙引號,來聲明字符串的時候, 內部不能再出現雙引號, 因為,雙引號被當成字符串的"邊界"來對待, 因此,內部出現雙引號,就引起了解釋上的歧義. 這時,可以用轉義字符, 即,用\" 轉義 來表示 " 還有沒有其他的轉義字符呢? 想: \", 被用來當成 " 理解了. 那我要是確實想表示 反斜線\, 又怎麼辦呢?, 答: 用\\, 表示 反斜線\ 還有沒有其他的轉義字符呢? 答:有 \n, \r, \$,等 \n 轉義成 換行符 \r 轉義成 回車符 **/ $str2 = "hello ,\"jack\",<br />"; echo $str2; $str3 = "hello \\"; echo $str3,'<br />'; $str4 = "hello\n\r\n\r\n\rworld"; echo $str4,'<br />'; $str5 = "hello $str3"; echo $str5,'<br />'; // hello hello \, 即把$str3當變量給解析出來 $str6 = "world \$str3"; //此處 \$被轉成了普通字符串$,而不再理解為變量標志. echo $str6; ?> <?php // 再看單引號 $str1 = 'hello'; echo $str1,'<br />'; // $str2 = 'hello 'jack''; // 某字符串是新聞標題,標題又出現單引號, // 單引號裡又出現的單引號怎麼辦呢? // '被用來做字符串的邊界了, // 因此,串內想出現',只好用轉義來表示 $str2 = 'hello \'jack\''; echo $str2,'<br />'; // \被用來轉義單引號用了,那麼如果我確實想表示\,怎麼辦呢. // \\ 來 表示 \ $str3 = 'hello \\'; echo $str3; ?> <?php // 常見的面試題 // 1:單雙引號定義字符串有何區別? $age = 29; $str1 = 'hello \n\r \t $age'; $str2 = "hello \n\r \t $age"; echo $str1,'<br />',$str2; /* 轉義上的區別: 單引號,系統不做復雜的轉義, 只轉義\',\\, 其他的---一律原樣輸出. 雙引號,則轉義的比較多,\",\\,\r,\n,\t,\$等. 對於變量解釋的區別: 單引號,不對字符串的$作變量名解析, 而雙引號,會試著$理解成變量名,來解析. */ // 2:單雙引號定義字符串,哪個速度更快一些? // 答:單引號解析的更快,因為不需要進行過多的轉義和變量解析 // 問:什麼時間選用單/雙引號呢? /* www.2cto.com 答:大段文本,比如新聞標題,文本內容,自我介紹等這樣大段話, 用',解析快. 但有時候,確實需要在一段字符串夾雜變量, 比如拼湊sql語句時 $id = 5; $sql = "select * from user where id = $id"; // 如果此時用單引,則語句成為了 ..id= $id,sql就出錯了. // 此時,用雙引合適. 解析$id,語句解析成 ..id = 5; */ ?>