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