Variabel php dalam kurung kurawal. kurung kurawal dalam satu baris di PHP. Contoh #3 Contoh definisi string di sini

13.12.2023 Kartu memori

Sintaks sederhana

Jika penerjemah menemukan tanda dolar ($), ia mengambil karakter sebanyak mungkin untuk membentuk nama variabel yang valid. Jika Anda ingin menentukan akhiran sebuah nama, sertakan nama variabel dalam kurung kurawal.

$bir = "Heineken" ;
echo "$beer rasanya enak" ; // berfungsi, """ adalah karakter yang tidak valid untuk nama variabel
echo "Dia minum $beers" ; // tidak berfungsi, "s" adalah karakter yang valid untuk nama variabel
echo "Dia minum $(bir)"; // berhasil
echo "Dia minum ($bir)"; // berhasil
?>

Elemen array ( susunan) atau properti objek ( obyek). Dalam indeks array, penutupan braket persegi (] ) menandai akhir dari definisi indeks. Aturan yang sama berlaku untuk properti objek seperti halnya variabel sederhana, meskipun aturan tersebut tidak dapat diakali seperti halnya dengan variabel.

// Contoh-contoh ini khusus tentang penggunaan array secara internal
// garis. Di luar string, selalu sertakan kunci string Anda
// array dalam tanda kutip dan jangan gunakan string luar (tanda kurung).

// Mari kita tampilkan semua kesalahan
error_reporting(E_ALL);

$buah = array("strawberry" => "merah" , "pisang" => "kuning" );

// Berfungsi, namun perhatikan bahwa di luar string yang dikutip, cara kerjanya berbeda
gema "Pisang adalah $buah.";

//Bekerja
gema "Pisang adalah ($buah["pisang"]).";

// Berfungsi, tetapi PHP, seperti dijelaskan di bawah, mencarinya terlebih dahulu
// pisang konstan.
gema "Pisang adalah ($buah).";

// Tidak berhasil, gunakan kurung kurawal. Hal ini akan menyebabkan kesalahan pemrosesan.
gema "Pisang adalah $buah["pisang"].";

// Berfungsi
echo "Pisang adalah " . $buah-buahan [ "pisang" ] . "." ;

// Berfungsi
gema "Kotak ini luasnya $persegi->lebar meter.";

// Tidak berhasil. Lihat sintaksis yang kompleks untuk solusinya.
gema "Kotak ini lebarnya $persegi->lebar00 sentimeter.";
?>

Untuk tugas yang lebih kompleks, Anda bisa menggunakan sintaksis yang kompleks.

Sintaks yang kompleks (keriting).

Sintaks ini disebut kompleks bukan karena sulit dipahami, tetapi karena memungkinkan penggunaan ekspresi yang kompleks.

Faktanya, Anda bisa memasukkan nilai apa pun yang ada di namespace sejalan dengan sintaksis ini. Anda cukup menulis ekspresi dengan cara yang sama seperti yang Anda lakukan di luar garis, lalu mengapitnya di dalam ( dan ). Karena Anda tidak dapat keluar dari "(", sintaks ini hanya akan dikenali ketika $ segera mengikuti (. (Gunakan "(\$" atau "\($" untuk keluar dari "($"). Beberapa contoh ilustratif:

// Mari kita tampilkan semua kesalahan
error_reporting(E_ALL);

$hebat = "fantastis" ;

// Tidak berfungsi, akan menampilkan: Ini (luar biasa)
echo "Ini ($bagus)";

// Berfungsi, dicetak: Ini luar biasa
echo "Ini ($bagus)";
echo "Ini $(bagus)" ;

// Berfungsi
gema "Kotak ini lebarnya ($persegi->lebar)00 sentimeter.";

// Berfungsi
gema "Berhasil: ($arr)";

// Ini tidak valid karena alasan yang sama dengan $foo yang tidak valid di luar
// garis. Dengan kata lain, ini akan tetap berfungsi,
// tetapi karena PHP mencari konstanta foo terlebih dahulu, hal ini akan menyebabkan
// tingkat kesalahan E_NOTICE (konstanta tidak terdefinisi).
gema "Ini salah: ($arr)";

// Berfungsi. Saat menggunakan array multidimensi, di dalam
// baris selalu menggunakan kurung kurawal
gema "Ini berhasil: ($arr["foo"])";

// Berfungsi.
gema "Ini berhasil: " . $arr [ "foo" ][ 3 ];

Gema "Anda bahkan dapat menulis ($obj->values->name)";

Gema "Ini adalah nilai variabel bernama $name: ($($name))";
?>

Karakter dalam string dapat digunakan dan dimodifikasi dengan menentukan offsetnya dari awal string, dimulai dari nol, dalam kurung kurawal setelah string. Berikut beberapa contohnya:

// Dapatkan karakter pertama dari string
$str = "Ini adalah ujian." ;
$pertama = $str ( 0 );

// Dapatkan karakter ketiga dari string
$ketiga = $str ( 2 );

// Dapatkan karakter terakhir dari string
$str = “Ini masih ujian.”;
$terakhir = $str ( strlen ($str ) - 1 );

// Mengubah karakter terakhir dari baris tersebut
$str = "Lihatlah laut";
$str ( strlen ($str ) - 1 ) = "diri" ;

?>

Fungsi dan operator string

Operator string

Bahasa pemrograman yang berbeda menggunakan operator penggabungan string (penggabungan) yang berbeda. Misalnya, Pascal menggunakan operator "+". Menggunakan operator "+" untuk menggabungkan string di PHP salah: jika string berisi angka, maka alih-alih menggabungkan string, operasi penambahan dua angka akan dilakukan.

PHP memiliki dua operator yang melakukan penggabungan.

Yang pertama adalah operator penggabungan ("."), yang mengembalikan rangkaian argumen kiri dan kanan.

Yang kedua adalah operator penugasan dengan penggabungan, yang menambahkan argumen kanan ke argumen kiri.

Mari kita beri contoh spesifik:

$a = "Halo" ;
$b = $a . "Dunia!" ; // $b berisi string "Halo Dunia!" - Ini adalah rangkaian

$a = "Halo" ;
$a .= "Dunia!" ; // $a berisi string "Halo Dunia!" - Ini adalah tugas dengan rangkaian
?>

Operator perbandingan string

Tidak disarankan menggunakan operator perbandingan == dan != untuk membandingkan string karena memerlukan konversi tipe. Contoh:

$x = 0 ;
$y=1;
jika ($x == "" ) gema "

x - string kosong

" ;
jika ($y == "" ) gema "

y - string kosong

"
;
// Keluaran:
// x adalah string kosong
?>

Skrip ini memberitahu kita bahwa $x adalah string kosong. Hal ini disebabkan oleh fakta bahwa string kosong ("") pertama-tama diperlakukan sebagai 0, dan baru kemudian sebagai "kosong". Dalam PHP, operan dibandingkan sebagai string hanya jika keduanya merupakan string. Kalau tidak, mereka akan dibandingkan sebagai angka. Dalam hal ini, string apa pun yang tidak dapat dikonversi oleh PHP menjadi angka (termasuk string kosong) akan diperlakukan sebagai 0.

Contoh perbandingan string:

$x = "Tali" ;
$y = "Tali" ;
$z = "Garis" ;
jika ($x == $z) gema "

String X sama dengan string Z

" ;
jika ($x == $y) gema "

String X sama dengan string Y

"
;
jika ($x != $z) gema "

String X TIDAK sama dengan string Z

"
;
// Keluaran:
// String X sama dengan string Y

?>

Untuk menghindari kebingungan dan konversi tipe, disarankan untuk menggunakan operator kesetaraan saat membandingkan string. Operator kesetaraan selalu memungkinkan Anda membandingkan string dengan benar, karena operator ini membandingkan nilai berdasarkan nilai dan jenis:

$x = "Tali" ;
$y = "Tali" ;
$z = "Garis" ;
jika ($x == = $z) gema "

String X sama dengan string Z

" ;
jika ($x === $y) gema "

String X sama dengan string Y

"
;
jika ($x !== $z ) gema "

String X TIDAK sama dengan string Z

"
;
// Keluaran:
// String X sama dengan string Y
// String X TIDAK sama dengan string Z
?>

Komentar: Di PHP 7.0.0 pada platform 64-bit tidak ada batasan panjang baris yang dapat dicapai; pada sistem 32-bit dan di versi PHP sebelumnya, ukuran baris tidak boleh lebih besar dari 2 GB (2147483647 byte).

Sintaksis

Sebuah string dapat didefinisikan dengan empat dalam berbagai cara:

  • kutipan tunggal
  • tanda kutip ganda
  • sintaks nowdoc (sejak PHP 5.3.0)

Kutipan tunggal

Cara paling sederhana untuk mendefinisikan sebuah string adalah dengan mengapitnya dalam tanda kutip tunggal (character " ).

Untuk menggunakan tanda kutip tunggal di dalam string, hilangkan tanda kutip tersebut dengan garis miring terbalik ( \ ). Jika Anda perlu menulis garis miring terbalik itu sendiri, duplikatlah ( \\ ). Semua penggunaan garis miring terbalik lainnya akan ditafsirkan sebagai karakter normal: ini berarti jika Anda mencoba menggunakan rangkaian escape lainnya seperti \R atau \N, mereka akan ditampilkan apa adanya, bukan dengan perilaku khusus apa pun.

gema "ini adalah string sederhana";

gema "Anda juga bisa menyisipkannya ke dalam garis
karakter baris baru seperti ini,
Ini baik-baik saja"
;

// Keluaran: Arnold pernah berkata: "Saya akan kembali"
gema "Suatu hari Arnold berkata, 'Saya akan kembali.'';

Gema "Apakah Anda menghapus C:\\*.*?";

// Keluaran: Apakah Anda menghapus C:\*.*?
echo "Apakah Anda menghapus C:\*.*?" ;

// Keluaran: Ini tidak akan diperluas: \n baris baru
gema "Ini tidak akan diperluas: \n baris baru";

// Output: variabel $expand dan $either tidak diperluas
gema "$expand dan $either variabel tidak diperluas";
?>

Kutipan ganda

Jika string diapit tanda kutip ganda ("), PHP mengenali urutan escape karakter khusus berikut:

Urutan Pelarian
Selanjutnya Arti
\N baris baru (LF atau 0x0A (10) di ASCII)
\R pengangkutan kembali (CR atau 0x0D (13) di ASCII)
\T tab horizontal (HT atau 0x09 (9) di ASCII)
\v tab vertikal (VT atau 0x0B (11) di ASCII) (sejak PHP 5.2.5)
\e karakter escape (ESC atau 0x1B (27) di ASCII) (sejak PHP 5.4.4)
\F umpan halaman (FF atau 0x0C(12) di ASCII) (sejak PHP 5.2.5)
\\ garis miring terbalik
\$ tanda dolar
\" kutipan ganda
\{1,3} rangkaian karakter yang cocok dengan ekspresi reguler karakter oktal yang meluap secara diam-diam agar sesuai dengan satu byte (yaitu "\400" === "\000")
\x(1,2) urutan karakter yang sesuai dengan ekspresi reguler karakter dalam notasi heksadesimal
\u(+) urutan karakter yang cocok dengan ekspresi reguler karakter Unicode yang dipetakan ke string dalam representasi UTF-8 (ditambahkan di PHP 7.0.0)

Seperti halnya string yang diapit tanda kutip tunggal, pelolosan karakter apa pun juga akan menampilkan karakter pelolosan itu sendiri. Sebelum PHP 5.1.1, garis miring terbalik masuk \($var) tidak dipublikasikan.

Ini dok

Cara ketiga untuk mendefinisikan string adalah dengan menggunakan sintaks heredoc: <<< . Setelah operator ini, Anda harus menentukan pengidentifikasi, lalu umpan baris. Setelah ini muncul baris itu sendiri, dan kemudian pengenal yang sama, menutup penyisipan.

Garis sebaiknya mulai dengan pengidentifikasi penutup, mis. itu harus muncul di kolom pertama baris. Selain itu, pengidentifikasi harus mengikuti aturan penamaan yang sama seperti semua tag lainnya di PHP: hanya berisi karakter alfanumerik dan garis bawah, dan tidak boleh dimulai dengan angka (garis bawah diperbolehkan).

Perhatian

Sangat penting untuk dicatat bahwa baris pengidentifikasi penutup tidak boleh berisi karakter lain kecuali titik koma ( ; ). Artinya id tidak boleh diindentasi dan tidak boleh ada spasi atau tab sebelum atau sesudah titik koma. Penting juga untuk dipahami bahwa karakter pertama sebelum pengidentifikasi penutup harus berupa karakter baris baru seperti yang ditentukan oleh sistem operasi Anda. Misalnya, pada sistem UNIX, termasuk macOS, hal ini terjadi \N. Setelah pengidentifikasi penutup, baris baru juga harus segera dimulai.

Jika aturan ini dilanggar dan pengidentifikasi penutup tidak "bersih", maka pengidentifikasi penutup dianggap hilang dan PHP akan terus mencarinya lebih lanjut. Jika dalam hal ini pengidentifikasi penutup yang benar tidak pernah ditemukan, maka akan menyebabkan kesalahan penguraian dengan nomor baris di akhir skrip.

Contoh #1 Contoh sintaksis yang salah

kelas foo (
publik $bar =<<batang
EOT;
// lekukan sebelum pengidentifikasi penutup tidak diperbolehkan
}
?>

Contoh #2 Contoh sintaksis yang benar

kelas foo (
publik $bar =<<batang
EOT;
}
?>

Heredoc tidak dapat digunakan untuk menginisialisasi bidang kelas.

Mulai dari PHP 5.3, pembatasan ini hanya berlaku untuk dokumen heredoc yang berisi variabel.

Teks Heredoc berperilaku sama seperti string dalam tanda kutip ganda, tanpa memilikinya.

Artinya, Anda tidak perlu melakukan escape pada tanda kutip di heredoc, namun Anda tetap dapat menggunakan rangkaian escape di atas.<<Variabel diproses, namun Anda harus berhati-hati saat menggunakan variabel kompleks di dalam heredoc seperti saat bekerja dengan string.
Contoh #3 Contoh definisi string di sini
$str =
Contoh baris,

mencakup beberapa baris,
{
menggunakan sintaks heredoc.
EO;

Kelas foo
{
var $foo ;
var $bar ;
}
}

Fungsi__konstruksi()
$ini -> foo = "Foo" ;

$ini -><<$foo = foo baru(); .
$nama = "Nama" ;
gema .
Nama saya adalah "$nama". Saya mengetik $foo -> foo
EOT;
?>

Sekarang saya sedang menyimpulkan

( $foo -> bilah [ 1 ])

Ini akan menampilkan huruf kapital "A": \x41

Nama saya adalah "Nama". Saya mengetik Foo. Sekarang, saya mengeluarkan Bar2. Ini akan menghasilkan huruf kapital "A": A

Sintaks heredoc juga dapat digunakan untuk meneruskan data melalui argumen fungsi:
Sejak versi 5.3.0, inisialisasi variabel statis dan properti/konstanta kelas dapat dilakukan menggunakan sintaks heredoc:
{
Contoh #5 Menggunakan heredoc untuk menginisialisasi variabel statis<<// Variabel statis
fungsi foo()
}

statis $bar =
Tidak ada apa pun di sini...
{
LABEL;<<// Konstanta/properti kelas
kelas foo

konstanta BAR =<<Contoh penggunaan konstanta
kelas foo
}
?>

FOOBAR; tanda kutip ganda:

Sekarang dok

Nowdoc sama untuk string dengan tanda kutip tunggal seperti halnya heredoc untuk string dengan tanda kutip ganda. Nowdoc mirip dengan heredoc, tetapi di dalamnya tidak ada pergantian pemain yang dilakukan. Desain ini ideal untuk menyematkan kode PHP atau blok teks besar lainnya tanpa harus keluar darinya. Dalam hal ini sedikit mirip dengan konstruksi SGML dengan mendeklarasikan blok teks yang tidak dimaksudkan untuk diproses.

Nowdoc ditunjukkan dengan urutan yang sama <<< , yang digunakan di heredoc, tetapi pengenal berikut diapit tanda kutip tunggal, misalnya, <<<"EOT" .

Semua ketentuan yang berlaku untuk pengidentifikasi heredoc juga berlaku untuk nowdoc, terutama yang berlaku untuk pengidentifikasi penutup.

$ini -><<<"EOD"
Contoh #7 Contoh penggunaan nowdoc
Contoh teks,
mencakup beberapa baris
menggunakan sintaks nowdoc. Garis miring terbalik selalu diartikan secara harfiah,
misalnya \\ dan \".

EO;

Hasil menjalankan contoh ini:

Contoh teks yang mencakup beberapa baris menggunakan sintaks nowdoc. Garis miring terbalik selalu diperlakukan secara harfiah, seperti \\ dan \".

Contoh #8 Contoh kutipan string Nowdoc dengan variabel
Tidak ada apa pun di sini...
{
/* Contoh yang lebih kompleks dengan variabel. */
publik $foo ;

Kelas foo
{
var $foo ;
publik $bar ;
}
}

Fungsi__konstruksi()
$ini -> foo = "Foo" ;

$ini -><<<"EOT"
$ini -> bar = array("Bar1", "Bar2" , "Bar3" );
Nama saya adalah "$nama". Saya mencetak $foo->foo.
Sekarang saya mencetak ($foo->bar).
EOT;
?>

EO;

Ini seharusnya tidak menghasilkan huruf kapital "A": \x41

Nama saya adalah "$nama". Saya mencetak $foo->foo. Sekarang saya mencetak ($foo->bar). Ini seharusnya tidak menghasilkan huruf kapital "A": \x41

kelas foo (
publik $bar =<<<"EOT"
batang
EOT;
}
?>

Komentar:

Contoh #9 Contoh penggunaan data statis

dukungan nowdoc telah ditambahkan di PHP 5.3.0.

Variabel Penanganan

Jika string ditentukan dalam tanda kutip ganda, atau menggunakan heredoc, variabel di dalamnya akan diproses. susunan Ada dua jenis sintaksis: sederhana dan kompleks. obyek Sintaks sederhana lebih mudah dan nyaman. Itu memungkinkan untuk memproses variabel, nilai array (

) atau properti objek (

) dengan sedikit usaha.

Sintaks yang kompleks dapat diidentifikasi dengan tanda kurung kurawal yang mengelilingi ekspresi. $ Sintaks sederhana

Jika penerjemah menemukan tanda dolar (

), ini menangkap karakter sebanyak mungkin untuk membentuk nama variabel yang benar. Jika Anda ingin menentukan akhiran sebuah nama, sertakan nama variabel dalam kurung kurawal.

$jus = "apel" ;
echo "Dia minum $jus jus." . PHP_EOL;

// Benar. Akhir dari nama variabel ditunjukkan secara ketat menggunakan tanda kurung:
echo "Dia minum jus yang terbuat dari $( jus ) s." ;
?>

EO;

Dia minum jus apel. Dia minum jus yang terbuat dari. Dia minum jus yang terbuat dari apel.

Elemen array ( susunan) atau properti objek ( obyek). Dalam indeks array ada tanda kurung siku penutup ( ] ) menandai akhir dari definisi indeks. Aturan yang sama berlaku untuk properti objek seperti halnya variabel sederhana.

Contoh #10 Contoh sintaksis sederhana

mendefinisikan("KOOLAID" , "koolaid1" );
$jus = array("apel" , "oranye" , "koolaid1" => "ungu" );

echo "Dia minum jus $jus [ 0 ]." . PHP_EOL;
echo "Dia minum jus $jus [ 1 ]." . PHP_EOL;
echo "Dia minum jus $juices [ koolaid1 ]." . PHP_EOL;

orang kelas (
publik $john = "John Smith" ;
publik $jane = "Jane Smith" ;
publik $robert = "Robert Paulsen" ;

Publik $smith = "Smith" ;
}

$orang = orang baru();

echo "$orang -> john minum $jus [ 0 ] jus." . PHP_EOL;
echo " $people -> john lalu menyapa $people -> jane ." . PHP_EOL;
echo "$people -> istri john menyapa $people -> robert." .PHP_EOL;
echo " $people -> robert menyapa dua $people -> smiths ." ; // Tidak akan berhasil
?>

EO;

Dia minum jus apel. Dia minum jus jeruk. Dia minum jus ungu. John Smith minum jus apel. John Smith kemudian menyapa Jane Smith. Istri John Smith menyapa Robert Paulsen.

PHP 7.1.0 menambahkan dukungan negatif indeks numerik.

Contoh #11 Indeks numerik negatif

$string = "string" ;
gema “Karakter pada indeks -2 sama dengan$string [- 2 ] ." , PHP_EOL ;
$string [- 3 ] = "o" ;
gema “Mengubah karakter pada posisi -3 menjadi 'o' menghasilkan baris berikut:$string." , PHP_EOL;
?>

EO;

Karakter dengan indeks -2 sama dengan n. Mengubah karakter pada posisi -3 menjadi "o" menghasilkan baris berikut: kuat

Untuk hal yang lebih kompleks, gunakan sintaksis yang kompleks.

Sintaks yang kompleks (keriting).

Disebut kompleks bukan karena sulit untuk dipahami, tetapi karena memungkinkan penggunaan ekspresi yang kompleks.

Variabel skalar, elemen array, atau properti objek apa pun yang dipetakan ke string dapat direpresentasikan dalam string menggunakan sintaks ini. Tulis saja ekspresi dengan cara yang sama seperti yang Anda lakukan di luar baris, lalu gabungkan { Dan } . Karena { tidak dapat di-escape, sintaks ini hanya akan dikenali ketika $ berikut secara langsung { . Menggunakan {\$ untuk mencetak {$ .

Beberapa contoh ilustrasi:
error_reporting(E_ALL);

$hebat = "hebat" ;

// Tidak berfungsi, keluaran: Ini (bagus)
echo "Ini ( $bagus )" ;

// Berfungsi, keluaran: Ini bagus
echo "Ini ( $bagus ) ";

// Berfungsi
gema “Kotak ini luas( $persegi -> lebar ) 00 sentimeter." ;

// Berfungsi, kata kunci yang dikutip hanya berfungsi dengan sintaks kurung kurawal
echo "Ini berhasil: ( $arr [ "kunci" ]) ";

// Berfungsi
echo "Ini berhasil: ( $arr [ 4 ][ 3 ]) ";

// Ini tidak valid karena alasan yang sama seperti $foo di luar
// garis. Dengan kata lain, ini akan tetap berfungsi,
// tetapi karena PHP mencari konstanta foo terlebih dahulu, hal ini akan menyebabkan
// tingkat kesalahan E_NOTICE (konstanta tidak terdefinisi).
gema "Ini salah:( $arr [ foo ][ 3 ]) ";

// Berfungsi. Saat menggunakan array multidimensi secara internal
// baris selalu menggunakan kurung kurawal
echo "Ini berhasil: ( $arr [ "foo" ][ 3 ]) ";

// Berfungsi.
gema "Ini berhasil: " . $arr [ "foo" ][ 3 ];

gema "Ini juga berfungsi:( $obj -> nilai [ 3 ]-> nama ) " ;

gema "Ini adalah nilai dari variabel bernama$nama : ($( $nama )) " ;

gema "Ini adalah nilai nama variabel yang getName() kembalikan:($( getNama ())) ";

gema "Ini adalah nilai variabel berdasarkan nama yang \$object->getName() kembalikan:($( $objek -> getName ())) " ;

// Tidak berfungsi, keluaran: Inilah yang getName() kembalikan: (getName())
gema "Inilah yang getName() kembalikan: (getName())";
?>

Dimungkinkan juga untuk mengakses properti objek dalam string menggunakan sintaks ini.

kelas foo (
var $bar = "Saya bar." ;
}

Fungsi__konstruksi()
$bar = "batang" ;
$baz = array("foo" , "bar" , "baz" , "quux" );
echo " ( $foo -> $bar ) \n" ;
echo " ( $foo ->( $baz [ 1 ])) \n" ;
?>

EO;

Aku Bar. Aku Bar.

Komentar:

Fungsi, pemanggilan metode, variabel kelas statis, dan konstanta kelas bekerja secara internal {$} , dimulai dengan PHP 5. Namun, nilai yang diberikan akan diperlakukan sebagai nama variabel dalam konteks yang sama dengan baris yang mendefinisikannya. Menggunakan kurung kurawal tunggal ( {} ) tidak akan berfungsi untuk mengakses nilai fungsi, metode, konstanta kelas, atau variabel kelas statis.

Beberapa contoh ilustrasi:
error_reporting(E_ALL);

bir kelas (
const minuman ringan = "rootbeer" ;
publik statis $ale = "ipa" ;
}

$rootbeer = "A & W" ;
$ipa = "Alexander Keith\"s" ;

// Ini berhasil, keluaran: Saya ingin A & W
echo "Saya mau ($( bir :: minuman ringan )) \n" ;

// Ini juga bisa, keluaran: Saya ingin milik Alexander Keith
echo "Saya mau ($( bir :: $ale )) \n" ;
?>

Mengakses dan mengubah karakter dalam string

Karakter dalam string dapat digunakan dan dimodifikasi dengan menentukan offsetnya dari awal string, dimulai dari nol, dalam tanda kurung siku setelah string, misalnya $str . Bayangkan string untuk tujuan ini sebagai array karakter. Dan Jika Anda perlu mendapatkan atau mengganti lebih dari 1 karakter, Anda dapat menggunakan fungsinya.

Komentar: substr() substr_replace() Mulai PHP 7.1.0, nilai offset negatif didukung. Mereka menentukan offset dari akhir baris. Offset negatif sebelumnya menyebabkan kesalahan level E_PEMBERITAHUAN

Komentar: saat dibaca (mengembalikan string kosong) atau

Perhatian

E_PERINGATAN Mereka menentukan offset dari akhir baris. Offset negatif sebelumnya menyebabkan kesalahan level saat menulis (membiarkan baris tidak berubah).

Perhatian

Karakter dalam string juga dapat diakses menggunakan kurung kurawal, misalnya $str(42) .

Komentar: Mencoba menulis ke offset di luar batas garis akan mengisi string dengan spasi hingga offset tersebut. Tipe non-integer akan diubah menjadi tipe integer.

Jenis offset yang salah akan menyebabkan kesalahan level

// Dapatkan karakter pertama dari string
.
Hanya karakter pertama dari string yang ditetapkan yang digunakan.

// Dapatkan karakter ketiga dari string
Pada PHP 7.1.0, menetapkan string kosong akan menyebabkan kesalahan fatal. Sebelumnya, dalam kasus ini, nol byte (NULL) telah ditetapkan.

// Dapatkan karakter terakhir dari string
String dalam PHP secara internal adalah array byte. Akibatnya, mengakses atau memodifikasi string pada offset bukanlah pengkodean multi-byte yang aman, dan hanya boleh dilakukan dengan string dalam pengkodean byte tunggal, seperti ISO-8859-1.
Sejak PHP 7.1.0, penggunaan indeks kosong menyebabkan kesalahan fatal sebelumnya, dalam hal ini, string dikonversi ke array tanpa peringatan.

// Mengubah karakter terakhir dari baris tersebut
Contoh #12 Beberapa contoh string
$str = "Ini adalah ujian." ;

?>

$pertama = $str [ 0 ]; $ketiga = $str [ 2 ];$str = "Ini masih ujian." ; 0 .

$terakhir = $str [ strlen ($str ) - 1 ];

$str = "Lihat ke laut" ;

$str [ strlen ($str )- 1 ] = "e" ;
Mulai PHP 5.4, offset dalam string harus ditentukan sebagai bilangan bulat atau string yang berisi angka, jika tidak, peringatan akan dikeluarkan. Sebelumnya offset diberikan oleh string like

"foo"
, tanpa peringatan diubah menjadi

Contoh #13 Perbedaan PHP 5.3 dan PHP 5.4
$str = "abc" ;

Var_dump($str["1"]);
var_dump (isset($str [ "1" ]));
?>

Var_dump($str["1.0"]);

var_dump (isset($str [ "1.0" ]));

Var_dump($str["x"]);

string(1) "b" bool(true) Peringatan: string ilegal offset "1.0" di /tmp/t.php on line 7 string(1) "b" bool(false) Peringatan: string ilegal offset "x" di / tmp/t.php pada baris 9 string(1) "a" bool(salah) string(1) "b" bool(salah)

Komentar:

Mencoba mengakses variabel tipe lain (tidak termasuk array atau objek yang mengimplementasikan antarmuka tertentu) menggunakan atau {} diam-diam akan kembali BATAL.

Komentar:

PHP 5.5 menambahkan dukungan untuk mengakses karakter dalam string literal menggunakan sintaksis atau {} .

Ada banyak fungsi berguna untuk memodifikasi string.

Fungsi dasar dijelaskan di bagian fungsi string, dan untuk pencarian dan penggantian lanjutan, fungsi ekspresi reguler yang kompatibel dengan Perl.

Konversikan ke string

Nilai dapat dikonversi menjadi string menggunakan cast (rangkaian), atau fungsi strval(). gema atau Dalam ekspresi yang memerlukan string, konversi terjadi secara otomatis. Ini terjadi ketika Anda menggunakan fungsi mencetak.

, atau ketika nilai suatu variabel dibandingkan dengan string. Membaca bagian Tipe dan Manipulasi Tipe di manual ini akan memperjelas hal berikut. Lihat juga tipe set() Array selalu dikonversi menjadi string susunan"Susunan" gema atau Dalam ekspresi yang memerlukan string, konversi terjadi secara otomatis., sehingga Anda tidak dapat menampilkan isi array ( ), menggunakan untuk melihat apa isinya. Untuk melihat satu elemen, gunakan sesuatu seperti

gema $arr["foo"] . Lihat di bawah untuk tips tentang cara menampilkan/melihat semua konten. Untuk mengonversi variabel tipe "Obyek" dalam tipe

rangkaian BATAL Metode ajaib __toString digunakan.

Arti selalu dikonversi ke string kosong. Dan Seperti yang Anda lihat di atas, mengonversi array, objek, atau sumber daya menjadi string secara langsung tidak memberikan informasi berguna apa pun tentang nilai itu sendiri selain tipenya..

Cara yang lebih baik untuk menampilkan nilai untuk debugging adalah dengan menggunakan fungsi cetak_r().

var_dump()

Sebagian besar nilai dalam PHP dapat dikonversi menjadi string untuk penyimpanan persisten. Metode ini disebut serialisasi dan dapat dilakukan dengan menggunakan fungsi tersebut

membuat serial() Mengubah string menjadi angka Jika string dikenali sebagai nilai numerik, nilai dan jenis yang dihasilkan ditentukan sebagai berikut. Jika string tidak mengandung karakter apa pun ".", "e", atau "E", dan nilai angka tersebut berada dalam rentang bilangan bulat (didefinisikan PHP_INT_MAX ), string akan dikenali sebagai bilangan bulat ().

Nilainya ditentukan oleh awal string. Jika baris dimulai dengan nilai numerik yang valid, nilai tersebut akan digunakan. Jika tidak maka nilainya akan menjadi 0 (nol). Nilai numerik yang valid adalah satu digit atau lebih (yang mungkin berisi titik desimal), yang dapat diawali dengan tanda diikuti dengan eksponen opsional. Eksponennya adalah "e" atau "E" diikuti oleh satu atau lebih digit.

$foo = 1 + "10,5" ; // $foo adalah pelampung (11.5)
$foo = 1 + "-1.3e3" ; // $foo adalah pelampung (-1299)
$foo = 1 + "bob-1.3e3" ; // $foo adalah bilangan bulat (1)
$foo = 1 + "bob3" ; // $foo adalah bilangan bulat (1)
$foo = 1 + "10 Babi Kecil" ; // $foo adalah bilangan bulat (11)
$foo = 4 + "10.2 Babi Kecil" ; // $foo adalah pelampung (14.2)
$foo = "10,0 babi " + 1 ; // $foo adalah mengambang (11)
$foo = "10.0 babi " + 1.0 ; // $foo adalah mengambang (11)
?>

Untuk informasi selengkapnya tentang konversi ini, lihat bagian strtod(3) dalam dokumentasi Unix.

Jika Anda ingin menguji salah satu contoh di bagian ini, salin dan tempel contoh tersebut dan baris berikut untuk melihat apa yang terjadi:

gema "\$foo== $foo ; ketik: " . gettype ($foo) . "
\N" ;
?>

Jangan berharap mendapatkan kode karakter dengan mengubahnya menjadi bilangan bulat (seperti yang dilakukan, misalnya, di C). Untuk mengonversi karakter ke kode ASCII dan sebaliknya, gunakan fungsi pesanan() Dan chr().

Detail implementasi tipe string

7 tahun yang lalu

Dokumentasi tidak menyebutkannya, tetapi titik koma penutup di akhir dokumen heredoc sebenarnya ditafsirkan sebagai titik koma sebenarnya, dan oleh karena itu, terkadang menyebabkan kesalahan sintaksis.

$foo =<<abcd
AKHIR;
?>

Ini tidak:

foo (<<abcd
AKHIR;
);
// kesalahan sintaksis, tidak terduga ";"
?>

Tanpa titik koma, ini berfungsi dengan baik:

foo (<<abcd
AKHIR
);
?>

3 tahun yang lalu

Anda dapat menggunakan string seperti array char (seperti C)

$a = "Uji susunan string";

var_dump($a);
// Mengembalikan string(17) "Tes array string"

var_dump($a);
// Mengembalikan string(1) "S"

// -- Dengan pemeran array --
var_dump((array) $a);
// Kembalikan array(1) ( => string(17) "Uji array string")

var_dump((array) $a);
// Mengembalikan string(17) "S"

Norihiori

1 tahun yang lalu

Ekspresi tunggal apa pun, betapapun rumitnya, yang dimulai dengan $ (yaitu, variabel) dapat disematkan () dalam string yang diberi tanda kutip ganda:

Echo "Ekspresi ( $h -> q ()[ "x)" ]-> p (9 == 0 ? 17 : 42 )) akan diuraikan sebaik ". $h -> q ()[ "x)" ]-> p (9 == 0 ? 17 : 42 ) . "melakukan." ;

?>

2 tahun yang lalu

Keduanya harus bekerja :(

Pengujian Kelas (
publik statis $VAR = "statis";
public const VAR = "konstan" ;

Fungsi publik sayHelloStatic() (
echo "halo: ( $ini :: $VAR ) ";
}

Fungsi publik sayHelloConst() (
echo "halo: ( $ini ::VAR) "; //Kesalahan parse: kesalahan sintaksis, tak terduga ")", mengharapkan "["
}
}

$obj = Pengujian baru();
$obj -> sayHelloStatic();
$obj -> ucapkanHaloConst ();

14 tahun yang lalu

Anda dapat menggunakan sintaksis kompleks untuk memasukkan nilai properti objek DAN metode objek ke dalam string. Misalnya...
kelasTes{
publik
$satu= 1 ;
fungsi publik
dua() {
kembali
2 ;
}
}
$tes= baruTes();
gema
"foo{ $tes-> satu} batang{ $tes-> dua()} " ;
?>
Akan menampilkan "foo 1 bar 2".

Namun, Anda tidak dapat melakukan ini untuk semua nilai di namespace Anda. Konstanta kelas dan properti/metode statis tidak akan berfungsi karena sintaksis kompleks mencari "$".
kelasTes{
konstanta
SATU= 1 ;
}
gema
"foo (Uji::SATU) bilah";
?>
Ini akan menampilkan "foo (Test::one) bar". Konstanta dan properti statis mengharuskan Anda memecah string.

6 tahun yang lalu

Angka nol di depan dalam string (paling tidak mengejutkan) tidak diperlakukan sebagai oktal.
Mempertimbangkan:
$x = "0123" + 0;
$y = 0123 + 0;
echo "x adalah $x, y adalah $y"; //mencetak "x adalah 123, y adalah 83"
dengan kata lain:
* angka nol di depan dalam literal numerik dalam kode sumber ditafsirkan sebagai "oktal", c.f. strtol().
* angka nol di awal string (misalnya data yang dikirimkan pengguna), ketika dimasukkan (secara implisit atau eksplisit) ke bilangan bulat akan diabaikan, dan dianggap sebagai desimal, c.f. strtod().

3 tahun yang lalu

Berhati-hatilah agar konsisten dengan "Konversi string ke angka":

jika ("123abc"== 123 ) gema"(intstr == int) salah menguji sebagai benar.";

// Karena salah satu sisinya adalah angka, string salah dikonversi dari intstr ke int, yang kemudian cocok dengan nomor tes.

// Benar untuk semua kondisi seperti pernyataan if dan switch (mungkin juga perulangan while)!

// Ini bisa menjadi risiko keamanan yang sangat besar ketika menguji/menggunakan/menyimpan input pengguna, sambil mengharapkan dan menguji hanya bilangan bulat.

// Tampaknya satu-satunya perbaikan adalah 123 menjadi string sebagai "123" sehingga tidak ada konversi yang terjadi.

?>

10 tahun yang lalu

Berikut adalah peretasan mudah yang memungkinkan string bertanda kutip ganda dan dokumen di sini memuat ekspresi arbitrer dalam sintaks kurung kurawal, termasuk konstanta dan pemanggilan fungsi lainnya:

// Deklarasi peretasan
fungsi_expr($v) (kembali$v; }
$_expr= "_expr";

// Taman bermain kita
mendefinisikan("qwe", "asd");
mendefinisikan("zxc", 5 );

$a= 3 ;
$b= 4 ;

fungsi C($a, $b) (kembali$a+ $b; }

//Penggunaan
gema"pra{ $_expr(1 + 2 )} pos\n"; // menampilkan "sebelum 3 postingan"
gema"pra{ $_expr(qwe)} pos\n"; // menampilkan "pra posting asd"
gema"pra{ $_expr(C($a, $b)+ zxc* 2 )} pos\n"; // menampilkan "postingan sebelum 17"

// Sintaks umum adalah ($_expr(...))
?>

11 tahun yang lalu

Untuk menyelamatkan pikiran Anda jangan membaca komentar sebelumnya tentang tanggal ;)

Ketika kedua string dapat dikonversi ke numerik (dalam pengujian ("$a" > "$b") maka numerik yang dihasilkan digunakan, jika tidak, string LENGKAP dibandingkan char-by-char:

var_dump("1.22" > "01.23" ); //bodoh(salah)
var_dump("1.22.00" > "01.23.00" ); //bodoh(benar)
var_dump("1-22-00" > "01-23-00" ); //bodoh(benar)
var_dump((mengambang)"1.22.00" > (mengambang)"01.23.00" ); //bodoh(salah)
?>

2 tahun yang lalu

Saya pikir akan sangat membantu untuk menambahkan komentar ini sehingga informasinya setidaknya muncul di halaman kanan situs PHP.

Perhatikan bahwa jika Anda ingin menggunakan string tanda kutip ganda dengan kunci asosiatif, Anda mungkin mengalami kesalahan T_ENCAPSED_AND_WHITESPACE. Beberapa orang menganggap ini sebagai salah satu pesan kesalahan yang kurang jelas.

Ekspresi seperti:

$buah=susunan(
"A"=> "apel",
"B"=> "pisang",
//dll
);

Mencetak "Ini adalah$buah[ "A"]"; // T_ENCAPSED_AND_WHITESPACE
?>

pasti akan hancur berkeping-keping.

Anda dapat mengatasinya dengan cara berikut:

Dalam ekspresi yang memerlukan string, konversi terjadi secara otomatis."Ini adalah$buah[ A] " ; // tanda kutip kuncinya
Dalam ekspresi yang memerlukan string, konversi terjadi secara otomatis."Ini adalah${ buah[ "A"]} " ; // Sintaks Kompleks
Dalam ekspresi yang memerlukan string, konversi terjadi secara otomatis."Ini adalah{ $buah[ "A"]} " ; // Variasi Sintaks yang Kompleks
?>

Saya memiliki preferensi pribadi untuk variasi terakhir karena lebih alami dan lebih dekat dengan ekspresi di luar string.

Tidak jelas (setidaknya bagi saya) mengapa PHP salah menafsirkan kutipan tunggal di dalam ekspresi tetapi saya membayangkan itu ada hubungannya dengan fakta bahwa kutipan bukan bagian dari string nilai - setelah string sudah diurai, tanda kutip saja menghalangi...?

Halo programmer pemula yang terhormat. Mari kita terus mempelajari unsur-unsur penyusunnya.

Pada artikel ini, kita akan mempelajari apa itu operator php. Beberapa di antaranya sebenarnya sudah kita kenal hampir sejak kecil, namun kita hanya mengenalnya sebagai tanda (+, -, =, !, ?).

Di php, semuanya disebut operator, yang cukup logis, karena mereka melakukan tindakan atau operasi tertentu.

Bahkan bisa dibilang semua karakter yang dapat dicetak selain huruf atau angka adalah operator di PHP. Namun bukan itu saja, karena ada operator yang terdiri dari huruf.

Mari kita mulai secara berurutan.

Operator aritmatika

Operator aritmatika digunakan untuk melakukan operasi pada bilangan.

+ adalah operator penjumlahan;
— — operator pengurangan;
/ - operator divisi;
* — operator perkalian;
% adalah operator untuk memperoleh sisa pembagian;
++ — operator untuk bertambah satu (kenaikan);
— — — berkurang satu operator (penurunan)

Saat menulis, biasanya diberi spasi sebelum dan sesudah operator. Hal ini dilakukan semata-mata untuk kemudahan membaca kode, meskipun ruang ini tidak mempengaruhi apa pun, dan Anda dapat melakukannya tanpanya jika diinginkan.

Ekspresi kompleks disusun menurut aturan yang berlaku dalam aritmatika, yaitu perkalian dan pembagian lebih diprioritaskan daripada penjumlahan dan pengurangan, dan jika keduanya ada dalam ekspresi, maka yang terakhir diapit tanda kurung.

gema (6 + 7 ) * (7 + 8 );
?>

Saat melakukan tindakan membagi bilangan bulat dengan bilangan bulat, jika diperoleh sisa, hasilnya secara otomatis diubah menjadi bilangan real (bilangan floating point).

gema 8/3;
?>

//2.66666666666

Jumlah digit yang dicetak untuk bilangan pecahan bergantung pada nilai yang ditetapkan dalam arahan presisi yang terdapat di file php.ini. Biasanya 12 karakter tidak termasuk titik.

Operator % biasa digunakan untuk menentukan apakah suatu bilangan habis dibagi bilangan lain tanpa sisa atau tidak.
?>

gema 53328 % 4 ; //0 Operasi dengan operator aritmatika, kecuali kenaikan dan penurunan, disebut

biner , karena melibatkan dua operan (istilah + istilah, dividen / pembagi, dll.) Tindakan kenaikan dan penurunan disebut unary, karena melibatkan satu operan. ada lagi

operasi bersyarat

, yang melibatkan tiga operan.

Operator kenaikan (++) dan penurunan (- -) hanya berlaku untuk variabel.
Tipe variabel integer (bilangan bulat)
?>

$berikutnya = 3 ;

gema+$berikutnya;
// 4
?>

String tipe variabel

$berikutnya = "abc";

gema $berikutnya;

// abd

Huruf "d" dicetak bukan huruf "c" karena merupakan huruf berikutnya dalam alfabet dan kami menambah nilai variabel sebanyak satu.

Contoh menunjukkan tindakan dengan kenaikan, dan dengan cara yang sama Anda dapat melakukan tindakan dengan penurunan.
Operator bitwise
Operator bitwise dirancang untuk bekerja dengan data biner. Jika ada yang tidak tahu apa itu, saya akan menjelaskannya. Bilangan biner adalah bilangan seperti 1001000011100000111000.
Karena data tersebut hampir tidak pernah digunakan dalam pengembangan situs web, kami tidak akan membahasnya secara detail. Saya hanya akan menunjukkan kepada Anda seperti apa bentuknya, sehingga ketika Anda menemukan simbol-simbol seperti itu, Anda dapat membayangkan apa yang sedang Anda hadapi.
<< — сдвиг влево битового значения операнда;
& - koneksi bitwise DAN (dan);

~ — negasi bitwise (bukan);

|

— kesatuan bitwise OR (atau);

^ — sedikit demi sedikit ATAU (xor);
>> — menggeser ke kanan nilai bit operan;
< — оператор меньше;
<= — оператор меньше или равно;
Kemungkinan besar Anda akan menjumpai operator-operator ini, karena data biner banyak digunakan dalam pengembangan program grafik komputer. Tetapi untuk mempelajarinya, jika seseorang membutuhkannya, mereka harus mengambil kursus terpisah di sumber lain.
Operator Perbandingan
Operator perbandingan adalah operator logika dan digunakan untuk membandingkan variabel. Array dan objek tidak dapat dibandingkan menggunakan keduanya.
!== — operator non-ekivalensi;

Sebagai hasil perbandingan, layar menampilkan salah satu yang menunjukkan benar (benar), atau string kosong yang menunjukkan salah (salah).

gema 1 > 0;
// 1< 0 ; // пустая строка
gema 1
gema 1 => 0 ;
?>

// 1

gema 1 == 1 ;

// 1

Jadi, operator pembanding hampir tidak pernah digunakan. Tujuan utamanya adalah untuk bekerja bersama dengan pernyataan if.



Pernyataan kondisional if, else, elseif.< $nexT)
{
Operator bersyarat disebut demikian karena dirancang untuk menguji kondisi tertentu, bergantung pada tindakan tertentu yang dilakukan. Pernyataan if menggunakan variabel atau ekspresi boolean sebagai argumen. Jika kondisi benar maka akan ditampilkan hasilnya, jika tidak benar maka akan ditampilkan baris kosong.
}
?>

jika ($selanjutnya
echo "Peluang terjadinya presipitasi";
// Keluaran Curah Hujan mungkin
{
Operator bersyarat disebut demikian karena dirancang untuk menguji kondisi tertentu, bergantung pada tindakan tertentu yang dilakukan. $next = "Kelembaban udara 80%";
}
?>

$nexT = "Kelembaban udara 90%";

jika ($selanjutnya
echo "Peluang terjadinya presipitasi";
// Keluaran Curah Hujan mungkin
{
jika ($berikutnya > $berikutnya)
}
// Cetak baris kosong
{
Jika program perlu menentukan dua tindakan, salah satunya akan dilakukan jika nilainya benar, dan yang lainnya jika nilainya salah, maka pernyataan else digunakan bersama dengan pernyataan if.
}
?>

echo "Peluang terjadinya presipitasi";

kalau tidak



// Keluaran Curah Hujan mungkin
{
echo "Diperkirakan tidak ada curah hujan";
}
Dalam hal ini, “Curah hujan tidak diharapkan” akan ditampilkan, dan jika dalam ekspresi Anda mengubah tanda “Lebih Banyak” menjadi “Lebih Sedikit”, maka “Curah hujan mungkin terjadi” akan ditampilkan. Beginilah cara operator kondisional memeriksa suatu kondisi dan mengeluarkan hasil yang benar berdasarkan kondisi tersebut.<= $nexT)
{
Seringkali ada kebutuhan untuk menetapkan lebih dari dua kondisi, dan kemudian, untuk memeriksanya secara berurutan, operator elseif digunakan.
}
gema "Saya mengerti";
{
elseif ($berikutnya
}
gema "Salju";
{
elseif ($berikutnya >= $berikutnya)
}
// Cetak baris kosong
{
jika ($berikutnya > $berikutnya)
}
?>

gema "Hujan";

elseif ($berikutnya == $berikutnya)

gema "Kekeringan";

Program ini akan menampilkan "Salju". Jika tidak ada kondisi yang cocok, maka akan ditampilkan “Peluang curah hujan”.
Pernyataan if dapat berisi blok elseif sebanyak yang Anda inginkan, namun hanya satu pernyataan else.
Pernyataan kondisional if, else, elseif.<= $nexT):

Seringkali ada kebutuhan untuk menetapkan lebih dari dua kondisi, dan kemudian, untuk memeriksanya secara berurutan, operator elseif digunakan.

Opsi perekaman alternatif diperbolehkan - tanpa kurung kurawal. Dalam hal ini, baris pernyataan if, else, elseif diakhiri dengan titik dua, dan seluruh konstruksi diakhiri dengan kata kunci (operator) endif.

elseif ($berikutnya

$next = "Kelembaban udara 50%";

elseif ($berikutnya >= $berikutnya)

$nexT = "Kelembaban udara 60%";

jika ($berikutnya > $berikutnya)
elseif ($berikutnya >= $berikutnya):
?>

elseif ($berikutnya == $berikutnya):

kalau tidak:

Operator logika digunakan ketika Anda perlu menggabungkan beberapa kondisi, yang akan mengurangi jumlah pernyataan if, yang pada gilirannya mengurangi kemungkinan kesalahan dalam kode.

&& - konjungsi penghubung DAN;
dan - juga DAN, tetapi dengan prioritas lebih rendah;
||
- memisahkan konjungsi OR;
atau - juga ATAU, tetapi dengan prioritas lebih rendah;
xor - eksklusif ATAU;

!

- penyangkalan;

Prioritas lebih rendah berarti jika kedua operator ada, operator dengan prioritas lebih tinggi akan dieksekusi terlebih dahulu.

Di masa depan, dengan menggunakan contoh skrip yang lebih kompleks, kita akan membahas operator logika secara lebih rinci.

Operator penugasan
Operator penugasan = menugaskan nilai operan kanan ke operan kiri.
?>

$berikutnya = "Halo"

gema "Halo" // Halo

Titik operator
Operator titik memisahkan bagian bilangan bulat suatu bilangan dari bagian pecahannya, dan menggabungkan beberapa string dan suatu bilangan menjadi satu string utuh. $berikutnya = 22 ;
?>

echo "Hari ini setelah" .$next. "diperkirakan akan terjadi embun beku";

// Hari ini diperkirakan akan membeku setelah pukul 22

Operator tanda kurung

Seperti dalam matematika, operator tanda kurung memberikan prioritas pada tindakan yang ada di dalamnya.

Data yang diapit tanda kurung dieksekusi terlebih dahulu, lalu sisanya.

Operator kurung kurawal

Ada tiga cara, atau bahkan gaya, untuk menempatkan kurung kurawal di PHP.
{

}

1. Gaya BSD - tanda kurung disejajarkan ke kiri.

Ada tiga cara, atau bahkan gaya, untuk menempatkan kurung kurawal di PHP.
{
jika ($berikutnya)
}

2. Gaya GNU - tanda kurung disejajarkan menjorok dari tepi kiri

echo “Halo para programmer pemula yang terhormat”;
jika ($berikutnya)
}

3. Gaya K&R - tanda kurung terbuka di baris operator

jika ($berikutnya)(

Sejak awal, Anda harus memilih salah satu gaya dan di masa depan, saat menulis skrip, gunakan saja. Selain itu, tidak masalah gaya mana yang Anda sukai. Penting agar seragam di seluruh program.

Saya pikir itu sudah cukup untuk saat ini. Pada prinsipnya tidak hanya tanda, tetapi juga fungsi dan elemen lainnya dapat menjadi operator, sehingga sangat sulit untuk mencantumkan semuanya, dan tidak ada gunanya.
Cukup memiliki gambaran tentang dasar-dasarnya. Dan kami akan menganalisis sisanya menggunakan contoh-contoh praktis.
Seorang warga Irlandia berkeliaran di sekitar Bandara Sheremetyevo sambil menangis. Salah satu karyawan memutuskan untuk bersimpati:
— Apakah kamu merindukan tanah airmu?
- Sama sekali tidak. Saya baru saja kehilangan semua barang bawaan saya

Pada postingan terakhir kita melihat sintaks pernyataan kondisional di PHP. Dalam catatan ini kita akan membahas tentang tanda kurung operator. Anda akan menjumpai mereka terus-menerus. Ini adalah konsep dasar dari bahasa pemrograman apa pun.

Wikipedia akan membantu kita menjawab pertanyaan tentang apa itu tanda kurung operator:

Tanda kurung operator- tanda kurung atau perintah yang mendefinisikan blok perintah dalam bahasa pemrograman, dianggap sebagai satu kesatuan, sebagai satu perintah.

Pascal menggunakan konstruksi berikut untuk menunjukkan tanda kurung operator: mulai…. akhir. Dalam bahasa mirip C (yang mencakup PHP), tanda kurung operator dijelaskan menggunakan simbol {…} .

Itu. dengan kata lain, beberapa perintah yang diapit tanda kurung operator diperlakukan sebagai 1 perintah.

Ada contoh di artikel tentang kondisi di PHP:

$b) ( echo "Variabel A lebih besar dari B"; ) else ( echo "Variabel B lebih besar dari A"; ) ?>

Dalam contoh ini, tanda kurung operator digunakan sebanyak 2 kali. Mereka menjebak operator

  • gema“Variabel A lebih besar dari B”;
  • gema“Variabel B lebih besar dari A”;

Pada contoh ini hanya ada 1 pernyataan yang diapit tanda kurung, sehingga setara dengan penulisan seperti ini:

$b) echo "Variabel A lebih besar dari B"; else echo "Variabel B lebih besar dari A"; ?>

Sintaksis:

Jika (kondisi) ekspresi 1; ekspresi lain 2;

Katakanlah kita ingin menampilkan baris lain di layar jika suatu kondisi tidak terpenuhi. Mari kita ubah juga nilai variabel kita menjadi sekarang $a adalah > $b. Mari kita ubah kode kita:

$b) echo "Variabel A lebih besar dari B."; else echo "Variabel B lebih besar dari A.";

echo "Ya..ya A sebenarnya lebih kecil dari B."; ?>

Ayo lakukan... Apa yang kita lihat di layar:

Variabel A lebih besar dari B. Ya..ya A sebenarnya lebih kecil dari B.

Ada kesalahan di sini. Seperti yang sudah Anda duga, intinya adalah karena kondisi kita benar (a > b), kode akan dieksekusi:

Echo “Variabel A lebih besar dari B.”; // Cetak baris kosong Di utas

Kami hanya memiliki 1 ekspresi:

Echo “Variabel B lebih besar dari A.”;

Ekspresi berikut akan dieksekusi apa pun kondisinya. Seperti ini:

$b) echo "Variabel A lebih besar dari B."; else echo "Variabel B lebih besar dari A."; echo "Ya..ya A sebenarnya lebih kecil dari B."; ?> // Cetak baris kosong:

Sekarang kita menggunakan tanda kurung operator dan menggabungkan 2 ekspresi di cabang

$b) ( echo "Variabel A lebih besar dari B."; ) else ( echo "Variabel B lebih besar dari A."; echo "Ya..ya A sebenarnya lebih kecil dari B."; ) ?> PHP Kodenya menjadi lebih jelas. Sekarang

memahami bahwa jika kondisi ($a > $b) tidak terpenuhi, maka perlu mencetak 2 baris. Dan jika kondisinya benar - hanya satu. Yang besar dariku untukmu– selalu gunakan tanda kurung operator, meskipun Anda tidak perlu menggabungkan beberapa operator menjadi 1 blok. Intinya adalah:

  • Kode lebih mudah dibaca dengan cara ini. Melihat sekilas kodenya, kita melihat blok-blok individualnya, dan bukan kumpulan huruf dan angka.
  • Perubahan sering kali harus dilakukan pada kode lama. Jika Anda tidak memiliki tanda kurung operator, dan Anda (seperti dalam kasus kami) menambahkan beberapa kode, logika program akan salah. Anda mungkin tidak langsung menyadarinya.