String

String คือประเภทข้อมูลประเภทข้อความหรือการนำตัวอักษรหลายๆ ตัวมาต่อกันหรือเรียกว่าอาเรย์ของตัวอักษร โดยความยาวของ String นั้นสามารถเปลี่ยนแปลงได้ตามค่าที่กำหนดให้กับตัวแปร ในภาษา PHP ค่าที่เป็นไปได้ของ String นั้นรองรับเกือบทุกตัวอักษรในโลก เช่น UTF-8

ในทุกภาษาของการเขียนโปรแกรมสมัยใหม่ จะมีคลาส String และมีฟังก์ชันในการจัดการ String ที่ช่วยอำนวยความสะดวกมากมาย แน่นอนในภาษา PHP นั้นได้มีฟังก์ชันที่จำเป็นในการทำงานกับ String เกือบจะทั้งหมด ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับ String อย่างละเอียด

การประกาศตัวแปร String

ในบทก่อนหน้าเราได้แนะนำให้คุณรู้จักกับ String ไปบ้างแล้ว เราจะมาดูการประกาศตัวแปร String ในภาษา PHP อีกครั้ง

$str1 = "This is string declaration with double quote.";
$str2 = 'This is string declaration with single quote.';

การประกาศตัวแปร String นั้นคุณสามารถทำได้สองแบบโดยการล้อมรอบข้อความด้วยเครื่องหมาย Double quote " หรือ Single quote ' ซึ่งทั้งสองแบบนี้จะให้ผลลัพธ์ที่แตกต่างกัน

การประกาศ String โดยการใช้เครื่องหมาย Double quote เหมือนในตัวแปร $str1 ทำให้สามารถแทรกตัวอักษรพิเศษหรือตัวแปรลงใน String ได้ ในขณะที่การประกาศแบบ Single quote ในตัวแปร $str2 นั้นจะได้ผลลัพธ์ของ String เหมือนที่แบบที่ได้ประกาศไว้ในตัวแปรเท่านั้น

<?php

$name = "John";
$double_quote = "My name is $name\n";
$single_quote = 'My name is $name\n';

echo $double_quote;
echo $single_quote;

?>

นี่เป็นตัวอย่างที่จะให้เห็นความแตกต่างของการประกาศ String ทั้งสองแบบ ซึ่งจะได้ผลลัพธ์ดังข้างล่าง

My name is John
My name is $name\n

ในผลลัพธ์ของโปรแกรม คุณจะเห็นว่าในตัวแปร $double_quote เราสามารถแทรกตัวแปร $name ลงไปภายใน String ได้ ซึ่งเรียกว่า String interpolation และ \n หมายถึงการขึ้นบรรทัดใหม่ ในขณะที่ในตัวแปร $single_quote จะได้ผลลัพธ์ตามที่เรากำหนดให้กับ String

String concatenation

String concatenation คือการต่อ String โดยการนำ String ตั้งแต่หนึ่งหรือหลายตัวมาต่อกันและจะได้ผลลัพธ์เป็น String ใหม่ ในภาษา PHP เราใช้เครื่องหมาย dot . ในการต่อ String เข้าด้วยกัน

<?php

$str1= "This is ". "marcuscode.com\n";
$str2 = "You " . "are ". " learning PHP\n";

$first_name = "Samuel";
$last_name = "Mu";
$full_name = $first_name . " " . $last_name;

echo $str1;
echo $str2;
echo $full_name ;

?>

ในตัวอย่างเราได้นำ String มาต่อกันโดยใช้เครื่องหมาย . ซึ่งเป็นดำเนินการต่อ String นอกจากนี้ เรายังสามารถต่อ String กับข้อมูลประเภท Value type ได้ เช่น Boolean Integer หรือ Float ซึ่งข้อมูลเหล่านี้เมื่อถูกใช้กับตัวกำเนินการต่อ String จะถูกแปลงเป็น String อัตโนมัติโดย PHP

<?php

$month = "November";
$day = 8;
$year = 2016;

$date = $month . " " . $day . ", " . $year;

echo var_dump($day);
echo var_dump($month);
echo var_dump($year);
echo var_dump($date);

?>

นี่เป็นตัวอย่างในการต่อ String กับข้อมูลแบบตัวเลขซึ่งจะให้ผลลัพธ์สุดท้ายเป็น String ดังผลการทำงานข้างล่าง

int(8)
string(8) "November"
int(2016)
string(16) "November 8, 2016"

String interpolation

String interpolation คือการสอดแทรกตัวแปรลงไปใน String ที่มีการประกาศโดยการใช้เครื่องหมาย Double quote " โดยการทำงานจะเกิดจากการค้นหาตัวแปรภายใน String และทำการแทนที่ตัวแปรนั้นด้วยค่าในตัวแปร และทำให้เกิด String ใหม่ มันสามารถใช้เป็นวิธีในการเชื่อมต่อ String ได้เช่นเดียวกัน

<?php

$amount = 10;
$fruit = "apple";
$container = "bag";
$sentence = "I have $amount $fruit(s) in a $container.\n";
echo $sentence;

$a = 4;
$b = 6;
$sum = $a + $b;
echo "$a + $b = $sum\n";

$name = "Marcus";
echo "Hey{$name}WhatsUp?";

?>

ในตัวอย่างเป็นการประกาศตัวแปรที่มีการทำ String interpolation ซึ่งสามารถใช้แทนการเชื่อมต่อ String ได้ ในตัวแปร $sentence เราสร้างประโยคด้วยการนำข้อมูลในตัวแปรมาสร้างเป็น String ใหม่ ในตัวแปร $sum เป็นการแสดงค่าผลรวมของตัวเลขทั้งสอง

$name = "Marcus";
echo "Hey{$name}WhatsUp?";

สำหรับคำสั่งสุดท้ายเราจะใช้เครื่องหมายวงเล็บ {} ในการล้อมรอบตัวแปร ในกรณีที่ข้อความรอบตัวแปรนั้นไม่เป็นช่องว่าง

I have 10 apple(s) in a bag.
4 + 6 = 10
HeyMarcusWhatsUp?

และนี่ผลลัพธ์ของโปรแกรมสำหรับ String interpolation ในภาษา PHP

Charterers of string

String นั้นเกิดจากการต่อกันของตัวอักษรหลายๆ ตัวอักษร ดังนั้นมันจึงเป็นอาเรย์ของ Character โดยเราสามารถเข้าถึงตัวอักษรใดๆ ภายใน String ผ่านทาง Index ได้โดยเครื่องหมาย []

<?php

$str = "Mountain";
echo "$str\n";
echo var_dump($str);

$str = "Mountain";
$str[0] = "m";
echo "$str\n";

$str[1] = "a";
$str[2] = "i";
echo "$str\n";

$str[0] = "";
echo "$str\n";
echo var_dump($str);

?>

ในตัวอย่างเป็นการเข้าถึงข้อมูลภายใน String โดย Index ซึ่งตำแหน่งแรกจะเริ่มจาก 0 เราเปลี่ยนตัวแปร "m" เป็นตัวพิมพ์ใหญ่ ต่อมาเราเข้าถึงตำแหน่งที่สองและตำแหน่งที่สามของ String และเราเปลี่ยนเป็น "a" และ "i" ตามลำดับ

ในคำสั่งสุดท้าย $str[0] = ""; เราทำการเปลี่ยนค่าให้กับ String เป็นค่าว่างซึ่งมันจะไม่ลบ String ออกและความยามของ String ยังคงเท่าเดิม

Mountain
string(8) "Mountain"
mountain
maintain
aintain
string(8) " aintain"

นี่เป็นผลลัพธ์ของโปรแกรม

String functions

ในภาษา PHP ได้มีฟังก์ชันในการทำงานเกี่ยวกับ String มากมายสำหรับใช้ในการจัดการ String เพื่อนำไปใช้ในวัตถุประสงค์ที่แตกต่างกัน เราจะแนะนำให้รู้จักกับฟังก์ชันที่สำคัญและใช้บ่อยๆ

<?php

$str = "Mountain";
echo $str . "\n";

echo strlen($str) . "\n"; // get the length
echo strtolower($str) . "\n"; // to lower case
echo strtoupper($str) . "\n"; // to upper case
echo strrev($str) . "\n"; // reverse string order
echo str_shuffle($str) . "\n"; // suffer string order
echo strpos($str, "tain") . "\n"; // find position of string
echo substr($str, 0, 3) . "\n"; // sub string
echo str_replace("ou", "ia", $str) . "\n"; // replace in string

?>

นี่เป็นตัวอย่างการใช้งานฟังก์ชันต่างๆ กับ String เรามี String ที่มีการกำหนดค่าเป็น "Mountain" เราใช้ฟังก์ชัน strlen() ในการหาความยาวของ String ฟังก์ชัน strtolower() สำหรับแปลง String ให้เป็นตัวพิมพ์เล็ก และฟังก์ชัน strtoupper() จะเป็นตัวพิมพ์ใหญ่

ฟังก์ชัน strrev() สำหรับกลับลำดับตัวอักษรภายใน String และฟังก์ชัน str_shuffle() สุ่มลำดับของตัวอักษรใหม่ ฟังก์ชัน strpos() ในการหาตำแหน่งแรกที่พบคำใน String

ส่วนฟังก์ชัน substr() เป็นการตัดคำใน String ในตัวอย่างเป็นตัดจากตำแหน่งแรก (Index 0) ไปอีก 3 ตัวอักษร และฟังก์ชัน str_replace() เป็นการแทนที่คำใน String ด้วยคำใหม่

Mountain
8
mountain
MOUNTAIN
niatnuoM
ntMaoniu
4
Mou
Miantain

นี่เป็นผลลัพธ์ของโปรแกรม

ต่อไปจะเป็นการใช้ฟังก์ชันของ String ในการจัดการกับกลุ่มคำหรือประโยค

<?php

$str = "Everest is the highest mountain in the world.";

$count = str_word_count($str);
echo "$count words in the string.\n";

$words = explode(" ", $str);
print_r($words);

$new_str = implode("+", $words);
echo $new_str;

?>

ในตัวอย่างเรามีตัวแปร $str ซึ่งได้เก็บค่าของ String ในรูปแบบประโยค เราใช้ฟังก์ชัน str_word_count() นับจำนวนคำใน String โดยคำที่นับนั้นจะแบ่งแยกตามช่องว่างหรือสัญลักษณ์พิเศษบางตัวที่อยู่ใน String

$words = explode(" ", $str);

ฟังก์ชัน explode ใช้ในการแยกคำจาก String และได้ผลลัพธ์มาเป็นอาเรย์ของ String โดยพารามิเตอร์ตัวแรกเป็นตัวที่จะใช้แบ่ง String ในตัวอย่างเป็นช่องว่าง

$new_str = implode("+", $words);

ฟังก์ชัน implode() ใช้สำหรับรวม String เข้าด้วยกันโดยคั่นด้วยตัวแบ่งที่ใส่เป็นพารามิเตอร์ตัวเลขของฟังก์ชัน

8 words in the string.
Array
(
[0] => Everest
[1] => is
[2] => the
[3] => highest
[4] => mountain
[5] => in
[6] => the
[7] => world.
)
Everest+is+the+highest+mountain+in+the+world.

นี่เป็นผลลัพธ์ของโปรแกรม จากการใช้ 3 ฟังก์ชันตามดังกล่าว

ต่อไปมาดูตัวอย่างของการใช้ฟังก์ชันในการจัดรูปแบบ String เพิ่มเติม คือการใช้ฟังก์ชันตัดและเติมคำลงไปใน String

<?php

// Triming string
$str = "####Music####";
echo trim($str, "#") . "\n";
echo ltrim($str, "#") . "\n";
echo rtrim($str, "#") . "\n";

// padding number
echo str_pad("PHP", 10, "*") . "\n";
echo str_pad("PHP", 10, "*", STR_PAD_LEFT) . "\n";
echo str_pad("PHP", 10, "*", STR_PAD_RIGHT) . "\n";

?>

ในตัวอย่างเรามีตัวแปร $str ซึ่งมีค่าเป็น "####Music####" เราใช้ฟังก์ชัน trim() ในการตัด # ทั้งสองข้างออกจาก String ฟังก์ชัน ltrim() สำหรับตัดเฉพาะทางด้านซ้าย และฟังก์ชัน rtrim() สำหรับตัดเฉพาะทางด้านขวา

ต่อมาเป็นการเติมคำลงไปใน String โดยการใช้ฟังก์ชัน str_pad() ในตัวอย่างเราเติมตัวอักษร "*" และอากิวเมนต์ตัวที่สอง 10 เป็นจำนวนของตัวอักษรทั้งหมดที่ต้องการซึ่งจะนับรวมกัน String เดิมด้วย และอากิวเมนต์ตัวที่สามเป็นประเภทของการเติม เช่น ทั้งสองข้าง ทางซ้าย หรือทางขวา

Music
Music####
####Music
PHP*******
*******PHP
PHP*******

นี่เป็นผลลัพธ์ของโปรแกรม

ในบทนี้ คุณได้เรียนรู้พื้นฐานของการทำงานกับ String ในภาษา PHP การประกาศตัวแปร การใช้งานฟังก์ชันในการจัดการ String


บทความเกี่ยวกับ String

String ในภาษา Java

ในบทนี้ คุณจะได้เรียนเกี่ยวกับประเภทข้อมูล String และคลาสของ String โดยละเอียด และนอกจากนี้ยังเรียนรู้ถึงวิธีการใช้เมธอดเพื่อจัดการ String ในภาษา Java String เป...

String ในภาษา Visual Basic

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับ string ในภาษา Visual Basic เพราะว่า string นั้นมีเนื้อหาและรายละเอียดค่อนข้างมากสำหรับการเขียนโปรแกรม ดังนั้นเราจึงแบ่งเนื้อหา...

String ในภาษา Python

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับ String ในภาษา Python เราจะพูดเกี่ยวกับการประกาศและใช้งาน String ในรูปแบบต่างๆ เพราะว่าเนื้อหาเกี่ยวกับ String นั้นมีค่อนข้างม...

String methods ในภาษา Python

ในบทก่อนหน้า เราได้พูดเกี่ยวกับการใช้งาน String ในเบื้องต้นไปแล้ว ในบทนี้ เราจะแนะนำเมธอดและการใช้งานเมธอดในคลาส String ในภาษา Python นั้น String เป็นคลาสมาตรฐา...