Senin, 20 Februari 2017
Tutorial PHP Tipe String Beserta Contohnya
Tutorial PHP Tipe String Beserta Contohnya
Jaka Prima Maulana
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com, pada tutorial kali ini kita akan membahas seluk beluk penggunaan tipe string pada PHP yang akan dijelaskan pengertian beserta contoh-contohnya.String
string adalah serangkaian karakter yaitu dimana sebuat karakter memiliki nilai byte yang sama. PHP hanya support 256-character set, dan karena itu tidak menawarkan support dengan native Unicode.
Pengertian Detail dari Tipe String
string didalam PHP dipresentasikan dengan array bytes dan integer yang mengindikasikan panjang dari buffer. tidak ada informasi bagaimana byte ini ter translate menjadi karakter, meninggalkan semua tugas tersebut pada programmer. tidak ada batasan dari isi didalam string, string dapat disusun, bytes dengan nilai 0 ( "NULL bytes" ) diperbolehkan dimanapun didalam string ( namun beberapa function mengatakan didalam manual binary tidak aman, menyerahkan string ke library yang mengabaikan data setelah nul byte. )
alaminya dari tipe string ini menjelaskan mengapa tidak ada yang " byte " yang terpisah didalam PHP, string mengambil peran ini. function yang mengembalikan tanpa tekstual data. contohnya, arbitrary data membaca dari network socket akan tetap mengembalikan nilai string.
PHP tidak memberikan dikte spesifik encoding dari string, mungkin anda bertanya bagaimana string literals encoded. sebagai contoh apakah string " a " sama dengan " \xE1 " (ISO-8859- 1), " \xC3\xA1 " (UTF-8, C form), " \x64\xCC\x81 " (UTF-8, D Form) atau dari beberapa kemungkinan representasi? jawabannya adalah string akan terencoded bagaimanapun cara ia terencoded didalam script file, demikian, jika script ditulis dalam ISO 8859-1. string akan terencoded kedalam ISO 8859-1 dan seterusnya. bagaimanapun tidak akan diterapkan jika end Multibyte di enable, yang berarti script akan ditulis kedalam arbitrary encoding ( dimana dengan jelas terdeklarasi atau terdeteksi ) dan terconvert pasti dalam internal encodeing, dimana encoding akan digunakan untuk literal string.
Tentu saja, agar berguna, function yang mengoperasikan dalam text akan membuat beberapa anggapan tentang bagaimana string terencoded. sayangnya terdapat banyak sekali variasi dalam materi seluruh PHP function.
beberapa function menganggap string terencode beberapa single-byte encoding, tetapi mereka tidak perlu menafsirkan byte sebagai spesifik karakter. dalam hal ini, sebagai contoh substr(), strpos(), strlen(). atau strcmp(). beberapa cara untuk berfikir function ini mengoperasikan memori buffer. yaitu mereka bekerja dengan bytes dan byte offsets.
function lain melewati encoding string, memungkinkan mereka menganggap default jika tidak ada informasi yang diberikan. ini adalah kasus dari htmlentities() dan mayoritas dari function didalam mbstring extension.
yang lainnya menggunakan lokasi saat ini, dalam contoh ini adalah setlocale(), tetapi operasi byte-by-byte dalam hal ini strcasecmp(), strtoupper(), dan ucfirst(). yang mengartikan bahwa mereka dapat dipakai hanya dalam single-byte encoding, selama encoding itu sama dengan locale. sebagai contoh strtoupper("a") akan mengembalikan nilai ("A") jika localenya benar melakukan set a encoded dengan single byte. jika terencoded dengan UTF-8, hasil yang benar tidak akan dikembalikan dan hasil string mungkin mengembalikan corrupted, tergantung dari locale saat ini.
Cara Penggunaan Tipe String
string dapat dispesifikasikan dengan 4 cara yaitu :
- kutip satu
- kutip dua
- heredoc sintak
- nowdoc sintak
Penggunaan Kutip satu ( single quoted )
ini adalah cara termudah untuk menspesifikasikan string dengan memberikan kutip satu diantara karakter antara kutip satu di awal dan diakhir.
Untuk menspesifikasikan literal kutip satu, dengan menghilangkan backslash ( \ ). untuk menspesifikasikan backslash, gunakan backslash 2 kali ( \\ ). semua contoh backslash akan dianggap sebagai literal backslash.
Contoh :
<?php
echo 'ini adalah contoh string dengan kutip satu <br>';
// Outputs: Jaka mengatakan " Selamat datang di tutorial PHP tipe string di primasaja.com "
// tidak boleh menggunakan kutip satu didalam kutip satu contoh 'Jaka mengatakan ' Selamat datang di tutorial PHP tipe string di primasaja.com ''
echo 'Jaka mengatakan " Selamat datang di tutorial PHP tipe string di primasaja.com "<br>';
// Outputs: anda menghapus C:\*.*?
echo 'anda menghapus C:\\*.*? <br>';
// Outputs: ini tidak akan membuat \n menjadi fungsi ke barus baru
echo 'contohnya adalah: \n baris baru <br>';
$contohvar = 20;
// Outputs: tidak akan teroutput $contohvar menjadi 20
echo 'Variables do not $contohvar <br>';
?>
Penggunaan Kutip Satu ( Double Quoted )
jika value di apit dengan tanda kutip dua diawal dan diakhir ( " ), maka PHP akan menafsirkan beberapa special character seperti dibawah ini
<?php
echo " contoh penggunaan \n adalah linefeed (LF or 0x0A (10) dalam ASCII) <br>";
echo " contoh penggunaan \r adalah carriage return (CR or 0x0D (13) dalam ASCII) <br>";
echo " contoh penggunaan \t adalah horizontal tab (HT or 0x09 (9) dalam ASCII) <br>";
echo " contoh penggunaan \v adalah vertical tab (VT or 0x0B (11) dalam ASCII) (sejak PHP 5.2.5) <br>";
echo " contoh penggunaan \e adalah escape (ESC or 0x1B (27) dalam ASCII) (sejak PHP 5.4.4) <br>";
echo " contoh penggunaan \f adalah form feed (FF or 0x0C (12) dalam ASCII) (sejak PHP 5.2.5) <br>";
echo " contoh penggunaan \\ adalah backslash <br>";
echo " contoh penggunaan \$ adalah dollar sign <br>";
?>
Penggunaan Heredoc
cara selanjutnya yaitu penggunaan heredoc, untuk membatasi string dengan menggunakan heredoc sintaks : <<< setelah operator ini, identifier melayani, lalu baris baru. string sendiri mengikuti dan sama dengan identifier lagi untuk mengakhiri kutip.
penutup identifier harus diawali di baris kolom pertama. identifier juga harus mengikuti nama yang sama aturan dari label lain di PHP : harus mengandung hanya aphanumeric karakter dan underscore, dan harus diawali dengan bukan digit karakter atau underscore.
Catatan :
sangat penting baris dengan identifier penutup harus mengandung bukan karakter lain, kecuali semicolon ( ; ) yang berarti terutama identifier tidak menjorok indent, dan tidak boleh ada spasi atau tab sebelum atau setelah semicolon. juga sangat penting untuk menyadari karakter awal sebelum penutup identifier haruslah baris baru sebagai pendefinisi local operating system. \n di UNIX system, termasuk MAC OS X. pembatas penutup harus juga diikuti baris baru.
jika peraturan tidak benar dan penutup identifier tidak bersih, maka itu tidak akan menjadi pertimbangan penutup identifier, dan PHP akan melanjutkan melihat satunya. jika tepat penutup identifer tidak ditemukan sebelum akhir dari file yang sedang dibuka, parse error akan ditampilkan di akhir baris.
contoh heredoc yang salah
<?php
class pembungkus1 {
public $var = <<<EOT
var
EOT; // ditak boleh ada indent akan error
}
?>
contoh heredoc yang benar
<?php
class pembungkus1 {
public $var = <<<EOT
var
EOT;
}
?>
heredocs tidak dapat digunakan untuk initializing properti class sejak PHP 5.3 keterbatasan hanya valid hanya untuk heredocs yang mengandung variable.
Heredoc text berperilaku seperti kutip dua string, tetapi tanpa kutip dua jika menggunakan heredoc. maksudnya adalah kutip di heredoc tidak perlu dikurung, tetapi escape kode dicantumkan diatas dan masih dapat digunakan. variable diperluas, tetapi dengan cara sama harus di ambil ketika mengekspresikan complex variable didalam heredocs sebagai string
Contoh 1 heredoc string
<?php
$var1 = <<<EOD
penggunaan heredocs untuk menampilkan string
menampilkan string yang dienter
EOD;
echo $var1;
?>
Contoh 2 heredoc string dengan variable
<?php
class pembungkus
{
function pembungkus()
{
$this->var1 = 'isi variabel 1';
$this->var2 = array('Bar1', 'Bar2', 'Bar3');
}
}
$pembungkusbaru = new pembungkus();
$domain = 'www.primasaja.com';
echo <<<EOT
Anda sedang melihat tutorial di "$domain". saya menampilkan variabel $pembungkusbaru->var1.
sekarang saya menampilkan array {$pembungkusbaru->var2[1]}.
ini akan menampilkan huruf kapital 'A': \x41
EOT;
?>
Contoh 3 Heredoc dalam argument
<?php
//heredoc argument
var_dump(array(<<<EOD
primasaja.com
EOD
));
// akan tampil array(1) { [0]=> string(15) "primasaja.com " }
?>
mulai dari PHP 5.3.0, memungkinkan untuk intialize static variable dan class properties atau constants menggunakan heredoc sintaks :
Contoh Penggunaan Heredoc untuk initialize static values
<?php
// Static variables
function fungsi1()
{
static $var1 = <<<LABEL
tidak ada apa apa disini
LABEL;
}
// Class properties/constants
class pembungkus
{
const var1 = <<<identifierprimasaja
contoh constant
identifierprimasaja;
public $baz = <<<identifierprimasaja
contoh property
identifierprimasaja;
}
?>
Mulai dari PHP 5.3.0 pembuka Heredoc identifier dapat ditambahkan opsi dilampirkan kutip dua. contohnya seperti berikut :
<?php
echo <<<"identifierprimasaja"
halo dunia
identifierprimasaja;
?>
Cara Penggunaan Tipe String dengan Nowdoc
jika penggunaan Heredocs mengizinkan kutip dua pada identifier, lalu Nowdocs menggunakan kutip satu. spesifikasi nowdoc mirip dengan heredoc, tetapi tidak memparsing didalam nowdoc. kontruksi ideal untuk menempatkan PHP code atau blok besar lain dari teks tanpa memerlukan escape. itu share beberapa fitur umum dengan SGML <![CDATA[]]> construct, dalam deklarasi blok dari teks yang mana tidak untuk parsing.
Nowdoc diidentifikasikan sama dengan Heredoc yaitu menggunakan <<<, tetapi identifier yang mengikuti penutup kutip satu, <<<'EOT'. setiap aturan dalam heredoc identifier juga diterapkan dalam nowdoc identifier, terutama mengenai penampilan dari penutup identifier.
Contoh Nowdoc string
class pembungkus
{
function pembungkus()
{
$this->var1 = 'isi variabel 1';
$this->var2 = array('Bar1', 'Bar2', 'Bar3');
}
}
$pembungkusbaru = new pembungkus();
$domain = 'www.primasaja.com';
echo <<<'EOT'
Anda sedang melihat tutorial di "$domain". saya menampilkan variabel $pembungkusbaru->var1.
sekarang saya menampilkan array {$pembungkusbaru->var2[1]}.
ini akan menampilkan huruf kapital 'A': \x41
EOT;
Contoh Static data Nowdoc
<?php
//static nowdoc
/*class pebungkus {
public $var1 = <<<'EOT'
var1
EOT;
}*/
?>
Parsing Variable
string yang telah dispesifikasikan kutip dua atau dengan heredoc, variables parsed didalamnya. terdapat 2 type dari sintaks, yang simple dan yang complex. sintaks yang simple dan sintak yang complex, sintaks yang simple adalah yang sering digunakan dan mudah. yaitu melayani yang terkandung variable, array value, atau object property dalam string dengan upaya yang minimum.
complex sintaks dapat dikenali dengan kurung kurawal mengelilingi expression.
Simple Sintaks
jika tanda dollar ( $ ) ditemui, parser akan dengan cepat mengambil sebanyak mungkin ke form yang valid nama variable. melampirkan nama variable di kurung kurawal untuk dengan jelas menspesifikasikan nama terakhir.
<?php
$minuman = "teh sosro";
echo "apapun makanannya minumnya $minuman <br>".PHP_EOL;
// Valid. jelas menspesifikasikan akhir dari nama variable dengan mencantumkan kurung kurawal
echo "apapun makanannya minumnya ${minuman}";
?>
sama halnya dengan array index dan atau object property dapat di parsed, dengan indikasi array, penggunaan kurung siku ( [ ] ) menandai index. sama aturannya dengan object properties sesimple variables
simple sintak dengan array dan object properties
<?php
$nama_makanan = array("nasi padang", "pecel", "ikan lele", "lainnya" => "baso");
class orang{
public $jaka = "Jaka Prima Maulana";
public $unggul = "Unggul Prayuda";
public $lainnya = "Budi";
}
$orang = new orang();
echo " $orang->jaka makan $nama_makanan[0] <br> ";
echo " $orang->jaka sedang berantem sama $orang->unggul <br> ";
echo " $orang->jaka juga nambah makan $nama_makanan[lainnya] ";
?>
untuk penggunaan sintaks yang lebih complex, selanjutnya akan dibahas mengenai complex sintaks
<?php
class wadah {
const website = 'var2';
public static $var3 = 'var1';
}
$var2 = 'belajar PHP di www.primasaja.com';
$var1 = '( isinya )';
echo "Saya ingin {${wadah::website}} <br>";
echo "isi dari wadah var3 adalah {${wadah::$var3}} <br>";
?>
Complex ( kurung ) sintaks
ini tidak bisa di sebut hanya karena sintaksnya complex, tetapi karena mengijinkan untuk menggunakan ekspresi yang complex.
skalar variable, array element, atau object properti dengan merepresentasikan string dapat termasuk via sintaks. penulis siple dari ekspresinya sama dengan ketika muncul diluar string. dan dibungkus dalam { dan }. sejak { tidak dapat escaped, sintak hanya dapat dikenali jika $ segera diikuti {. gunakan {\$ untuk mengambil secara tepat {$. beberapa contoh untuk memperjelas dijelaskan dengan contoh sebagai berikut
<?php
// untuk menunjukkan semua error
error_reporting(E_ALL);
//contoh salah
$var1 = "primasaja company";
echo "selamat datang di { $var1} <br>";
//ini contoh yang benar
// harus juga memakan kutip dua bukan kutip satu
echo "selamat datang di {$var1} <br>";
//penggunaan object properties
class wadah{
public $teh = 200 .'ml';
}
$wadah = new wadah();
echo "isi teh adalah {$wadah->teh}<br>";
echo "contoh pengambilan didalam class : {$wadah->teh[3]} <br>";
//penggunaan array
$array1 = array("isi array1 index 0", "isi array1 index 1", "varindex3" => "isi array1 index 2");
echo " tampil data array : {$array1['varindex3']} <br>";
echo " tampil data isi array dari index 0 data string ke index 1 : {$array1[0][3]} <br> ";
echo "tampil data array varindex3 isi array string ke 2 : ".$array1['varindex3'][2].'<br>';
?>
// untuk menunjukkan semua error
error_reporting(E_ALL);
//contoh salah
$var1 = "primasaja company";
echo "selamat datang di { $var1} <br>";
//ini contoh yang benar
// harus juga memakan kutip dua bukan kutip satu
echo "selamat datang di {$var1} <br>";
//penggunaan object properties
class wadah{
public $teh = 200 .'ml';
}
$wadah = new wadah();
echo "isi teh adalah {$wadah->teh}<br>";
echo "contoh pengambilan didalam class : {$wadah->teh[3]} <br>";
//penggunaan array
$array1 = array("isi array1 index 0", "isi array1 index 1", "varindex3" => "isi array1 index 2");
echo " tampil data array : {$array1['varindex3']} <br>";
echo " tampil data isi array dari index 0 data string ke index 1 : {$array1[0][3]} <br> ";
echo "tampil data array varindex3 isi array string ke 2 : ".$array1['varindex3'][2].'<br>';
?>
Catatan :
Function, pemanggil method, static class varuables, dan class constant didalam {$} bisa dipakai sejak PHP 5. namun, value terakses akan ditafsirkan sebagai nama dari variable didalam scope dimana string terdefinisi. menggunakan single kurung kurawal ( {} ) tidak akan bekerja untuk akses return values dari function atau method atau values dari class constants ataupun static class variable
<?php
class wadah {
const website = 'var2';
public static $var3 = 'var1';
}
$var2 = 'belajar PHP di www.primasaja.com';
$var1 = '( isinya )';
echo "Saya ingin {${wadah::website}} <br>";
echo "isi dari wadah var3 adalah {${wadah::$var3}} <br>";
?>
Tutorial Cara Akses dan Modifikasi String berdasarkan Karakter
katakter dengan string memungkinkan untuk diakses dan dimodifikasi dengan menspesifikasikan zero-based offset dari yang diinginkan karakter setelah string menggunakan kurung siku array ( [ ] ), seperti dalam $str[42]. berfikirlah bahwa string sebagai array dari setiap karakter. function substr() dan substr_replace() dapat digunakan untuk mencabut dan menaruhnya dengan lebih dari 1 karakter.
<?php
// mengambil string ke
$string = 'abcdef';
$karakterke1 = $string[0];
echo $karakterke1 .'<br>';
// Mengambil string karakter terakhir dari string.
$string = 'abcdef';
$karakterakhir = $string[strlen($string)-1];
echo $karakterakhir.'<br>';
// merubah karakter terakhir dari string
$stringlama = 'abcdef';
$stringlama[strlen($stringlama)-1] = 'z';
echo $stringlama.'<br>';
?>
<?php
// mengambil string ke
$string = 'abcdef';
$karakterke1 = $string[0];
echo $karakterke1 .'<br>';
// Mengambil string karakter terakhir dari string.
$string = 'abcdef';
$karakterakhir = $string[strlen($string)-1];
echo $karakterakhir.'<br>';
// merubah karakter terakhir dari string
$stringlama = 'abcdef';
$stringlama[strlen($stringlama)-1] = 'z';
echo $stringlama.'<br>';
?>
Topik menarik sejenis yang mungkin anda cari:
Langganan:
Posting Komentar
(
Atom
)
Tidak ada komentar :
Posting Komentar