Pertanyaan Referensi - Apa arti simbol ini di PHP?


Apa ini?

Ini adalah kumpulan pertanyaan yang muncul setiap sekarang dan kemudian tentang sintaks dalam PHP. Ini juga merupakan Wiki Komunitas, sehingga setiap orang diundang untuk berpartisipasi dalam mempertahankan daftar ini.

Kenapa ini?

Dulu sulit untuk menemukan pertanyaan tentang operator dan token syntax lainnya
Gagasan utamanya adalah memiliki tautan ke pertanyaan yang ada di Stack Overflow, jadi lebih mudah bagi kami untuk mereferensikannya, bukan menyalin konten dari PHP Manual.

¹ Catatan: Sejak Januari 2013, Stack Overflow tidak mendukung karakter khusus. Arahkan saja istilah penelusuran dengan tanda kutip, mis. [php] "==" vs "==="

Apa yang harus saya lakukan di sini?

Jika Anda telah diarahkan ke sini oleh seseorang karena Anda telah mengajukan pertanyaan semacam itu, harap temukan sintaksis di bawah ini. Halaman yang ditautkan ke Manual PHP bersama dengan pertanyaan terkait kemungkinan akan menjawab pertanyaan Anda. Jika demikian, Anda dianjurkan untuk memberi jawaban atas jawaban. Daftar ini tidak dimaksudkan sebagai pengganti bantuan yang diberikan orang lain.

Daftar

Jika token khusus Anda tidak tercantum di bawah ini, Anda mungkin menemukannya di Daftar Token Parser.


&  Operator Bitwise atau Referensi


=&  Referensi


&=  Operator Bitwise


&&  Operator Logika


%  Operator Aritmatika


!!  Operator Logika


@  Operator Kontrol Kesalahan


?:  Operator Ternary


??  Operator Coalesce Null (sejak PHP 7)


:  Sintaks alternatif untuk struktur kontrol, Operator Ternary


::  Ruang Lingkup Operator Resolusi


\  Namespaces


->  Kelas dan Objek


=>  Array


^  Operator Bitwise


>>  Operator Bitwise


<<  Operator Bitwise


<<<  Heredoc atau Nowdoc


=  Operator Penugasan


==  Operator Perbandingan


===  Operator Perbandingan


!==  Operator Perbandingan


!=  Operator Perbandingan


<>  Operator Perbandingan


<=>  Operator Perbandingan (sejak PHP 7.0)


|  Operator Bitwise


||  Operator Logika


~  Operator Bitwise


+  Operator Aritmatika, Operator Array


+= dan -=  Operator Penugasan


++ dan --  Operator Incrementing / Decrementing


.=  Operator Penugasan


.  Operator String


,  Argumen Fungsi

,  Deklarasi Variabel


$$  Variabel Variabel


`  Operator Eksekusi


<?=  Short Open Tags


[]  Array (sintaks singkat sejak PHP 5.4)


<?  Pembukaan dan Penutupan tag


...  Argumen membongkar (sejak PHP 5.6)


**  Exponentiation (sejak PHP 5.6)


#  Komentar bergaya shell satu baris



3785


asal


Jawaban:


Operator Incrementing / Decrementing

++ operator increment

-- operator pengurangan

Example    Name              Effect
---------------------------------------------------------------------
++$a       Pre-increment     Increments $a by one, then returns $a.
$a++       Post-increment    Returns $a, then increments $a by one.
--$a       Pre-decrement     Decrements $a by one, then returns $a.
$a--       Post-decrement    Returns $a, then decrements $a by one.

Ini bisa pergi sebelum atau sesudah variabel.

Jika diletakkan sebelum variabel, operasi kenaikan / penurunan dilakukan untuk variabel pertama maka hasilnya dikembalikan. Jika dimasukkan setelah variabel, variabel tersebut pertama dikembalikan, maka operasi kenaikan / pengurangan dilakukan.

Sebagai contoh:

$apples = 10;
for ($i = 0; $i < 10; ++$i) {
    echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}

Contoh langsung

Dalam kasus di atas ++$i digunakan, karena lebih cepat. $i++ akan memiliki hasil yang sama.

Pre-increment sedikit lebih cepat, karena benar-benar meningkatkan variabel dan setelah itu 'mengembalikan' hasilnya. Post-increment menciptakan variabel khusus, menyalin di sana nilai variabel pertama dan hanya setelah variabel pertama digunakan, mengganti nilainya dengan variabel kedua.

Namun, Anda harus menggunakannya $apples--, sejak pertama Anda ingin menampilkan jumlah apel saat ini, dan kemudian Anda ingin mengurangi satu dari itu.

Anda juga dapat menambahkan huruf dalam PHP:

$i = "a";
while ($i < "c") {
    echo $i++;
}

Sekali z tercapai aa berikutnya, dan seterusnya.

Perhatikan bahwa variabel karakter dapat ditingkatkan tetapi tidak dikurangi dan bahkan hanya karakter ASCII biasa (a-z dan A-Z) yang didukung.


Pos Stack Overflow:


947



Operator Bitwise

Apa itu sedikit? Sedikit adalah representasi dari 1 atau 0. Pada dasarnya MATI (0) dan ON (1)

Apa itu byte? Satu byte terdiri dari 8 bit dan nilai tertinggi dari byte adalah 255, yang berarti setiap bit diatur. Kami akan melihat mengapa nilai maksimum byte adalah 255.

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------

Representasi ini dari 1 Byte

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 Byte)

Beberapa contoh untuk pemahaman yang lebih baik

Operator "DAN": &

$a =  9;
$b = 10;
echo $a & $b;

Ini akan menghasilkan angka 8. Mengapa? Nah mari kita lihat menggunakan contoh tabel kami.

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      &     |   0|  0|  0|  0| 1| 0| 0| 0|
------------------------------------------- 

Jadi Anda dapat melihat dari tabel, satu-satunya bit yang mereka bagi bersama adalah 8 bit.

Contoh kedua

$a =  36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111

Kedua bit bersama adalah 32 dan 4, yang bila ditambahkan bersama-sama menghasilkan 36.

Operator "Or": |

$a =  9;
$b = 10;
echo $a | $b;

Ini akan menghasilkan angka 11. Mengapa?

-------------------------------------------
|      1 Byte ( 8 bits )                  |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
-------------------------------------------
|      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
-------------------------------------------
|      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
------------------------------------------- 
|      |     |   0|  0|  0|  0| 1| 0| 1| 1|
-------------------------------------------

Anda akan melihat bahwa kami memiliki 3 bit ditetapkan, di 8, 2, dan 1 kolom. Tambahkan itu: 8 + 2 + 1 = 11.


359



_  Alias ​​untuk gettext () 

Karakter garis bawah '_' seperti pada _() adalah alias untuk gettext() fungsi.


224



Syntax    Name             Description

x == y    Equality         True if x and y have the same key/value pairs
x != y    Inequality       True if x is not equal to y
x === y   Identity         True if x and y have the same key/value pairs
                            in the same order and of the same types
x !== y   Non-identity     True if x is not identical to y
++ x      Pre-increment    Increments x by one, then returns x
x ++      Post-increment   Returns x, then increments x by one
-- x      Pre-decrement    Decrements x by one, then returns x
x --      Post-decrement   Returns x, then decrements x by one
x and y   And              True if both x and y are true x=6 y=3
                           (x < 10 and y > 1) returns true 
x && y    And              True if both x and y are true x=6 y=3
                           (x < 10 && y > 1) returns true
a . b     Concatenation    Concatenate two strings: "Hi" . "Ha"

209



Konstanta sihir: Meskipun ini bukan hanya simbol tetapi bagian penting dari keluarga token ini. Ada delapan konstanta magis yang berubah tergantung di mana mereka digunakan.

__LINE__: Nomor baris saat ini dari file.

__FILE__: Jalur lengkap dan nama file file. Jika digunakan di dalam include, nama file yang disertakan dikembalikan. Sejak PHP 4.0.2, __FILE__ selalu mengandung jalur absolut dengan symlinks diselesaikan sedangkan di versi yang lebih lama itu berisi path relatif dalam beberapa keadaan.

__DIR__: Direktori file. Jika digunakan di dalam include, direktori file yang disertakan dikembalikan. Ini setara dengan dirname(__FILE__). Nama direktori ini tidak memiliki garis miring kecuali itu adalah direktori root. (Ditambahkan dalam PHP 5.3.0.)

__FUNCTION__: Nama fungsi. (Ditambahkan dalam PHP 4.3.0) Pada PHP 5 ini konstan mengembalikan nama fungsi seperti yang dinyatakan (case-sensitive). Di PHP 4 nilainya selalu diturunkan.

__CLASS__: Nama kelas. (Ditambahkan dalam PHP 4.3.0) Pada PHP 5 ini konstan mengembalikan nama kelas seperti yang dinyatakan (case-sensitive). Di PHP 4 nilainya selalu diturunkan. Nama kelas mencakup namespace yang dideklarasikan di (mis. Foo\Bar). Perhatikan bahwa pada PHP 5.4 __CLASS__ bekerja juga dalam sifat-sifat. Ketika digunakan dalam metode trait, __CLASS__ adalah nama kelas yang digunakan dalam karakter.

__TRAIT__: Nama sifat. (Ditambahkan dalam PHP 5.4.0) Pada PHP 5.4 ini konstan mengembalikan sifat seperti yang dinyatakan (case-sensitive). Nama sifat termasuk namespace yang dideklarasikan di (mis. Foo\Bar).

__METHOD__: Nama metode kelas. (Ditambahkan dalam PHP 5.0.0) Nama metode dikembalikan seperti yang dinyatakan (peka huruf besar kecil).

__NAMESPACE__: Nama ruang nama saat ini (peka huruf besar-kecil). Konstanta ini didefinisikan dalam waktu kompilasi (Ditambahkan dalam PHP 5.3.0).

Sumber


194



<=> Operator Spaceship

Ditambahkan dalam PHP 7

Itu operator pesawat ruang angkasa  <=> adalah operator perbandingan terbaru yang ditambahkan dalam PHP 7. Ini adalah a non-asosiatif operator biner dengan preseden yang sama dengan operator kesetaraan (==, !=, ===, !==). Operator ini memungkinkan untuk perbandingan tiga arah yang lebih sederhana antara operan kiri dan tangan kanan.

Operator menghasilkan ekspresi integer:

  • 0 ketika kedua operand itu sama
  • Kurang dari 0 ketika operan kiri kurang dari operan kanan
  • Lebih besar dari 0 ketika operan kiri lebih besar dari operan kanan

misalnya

1 <=> 1; // 0
1 <=> 2; // -1
2 <=> 1; // 1

Aplikasi praktis yang baik dalam menggunakan operator ini adalah dalam callback perbandingan jenis yang diharapkan mengembalikan nol, negatif, atau bilangan bulat positif berdasarkan perbandingan tiga arah antara dua nilai. Fungsi perbandingan diteruskan ke usort adalah salah satu contohnya.

Sebelum PHP 7 Anda akan menulis ...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    if ($a < $b) {
        return -1;
    } elseif ($a > $b) {
        return 1;
    } else {
        return 0;
    }
});

Sejak PHP 7 Anda dapat menulis ...

$arr = [4,2,1,3];

usort($arr, function ($a, $b) {
    return $a <=> $b;
});

188



Ketik Operator

instanceof digunakan untuk menentukan apakah suatu variabel PHP merupakan objek instantiated dari kelas tertentu.

<?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);

Contoh di atas akan menampilkan:

bool(true)
bool(false)

Alasan: Contoh di Atas $a adalah objek dari mclass jadi gunakan hanya a mclass data bukan contoh dengan sclass

Contoh dengan warisan

<?php 
class pclass { } 
class childclass extends pclass { } 
$a = new childclass; 
var_dump($a instanceof childclass); 
var_dump($a instanceof pclass);

Contoh di atas akan menampilkan:

bool(true)
bool(true)

Contoh dengan Clone

<?php 
class cloneable { } 
$a = new cloneable;
$b = clone $a; 
var_dump($a instanceof cloneable); 
var_dump($b instanceof cloneable);

Contoh di atas akan menampilkan:

bool(true)
bool(true)

120



Tinjauan tentang operator di PHP:


Operator Logika:

  • $ a && $ b: BENAR jika keduanya $ a dan $ b BENAR.
  • $ a || $ b: BENAR jika $ a atau $ b adalah BENAR.
  • $ a xor $ b: BENAR jika $ a atau $ b adalah TRUE, tapi tidak keduanya.
  • ! $ a: BENAR jika $ a tidak BENAR.
  • $ a dan $ b: BENAR jika keduanya $ a dan $ b BENAR.
  • $ a atau $ b: BENAR jika $ a atau $ b adalah BENAR.

Operator perbandingan:

  • $ a == $ b: BENAR jika $ a sama dengan $ b setelah jenis juggling.
  • $ a === $ b: BENAR jika $ a sama dengan $ b, dan mereka bertipe sama.
  • $ a! = $ b: BENAR jika $ a tidak sama dengan $ b setelah jenis juggling.
  • $ a <> $ b: BENAR jika $ a tidak sama dengan $ b setelah jenis juggling.
  • $ a! == $ b: BENAR jika $ a tidak sama dengan $ b, atau mereka bukan dari tipe yang sama.
  • $ a <$ b : BENAR jika $ a sangat kurang dari $ b.
  • $ a> $ b : TRUE jika $ a lebih ketat dari $ b.
  • $ a <= $ b : TRUE jika $ a kurang dari atau sama dengan $ b.
  • $ a> = $ b : TRUE jika $ a lebih besar dari atau sama dengan $ b.
  • $ a <=> $ b : Sebuah integer kurang dari, sama dengan, atau lebih besar dari nol ketika $ a masing-masing kurang dari, sama dengan, atau lebih besar dari $ b. Tersedia mulai PHP 7.
  • $ a? $ b: $ c : jika $ a return $ b lain kembali $ c (operator terner)
  • $ a ?? $ c : Sama seperti $ a? $ a: $ c (operator penggabungan nol - membutuhkan PHP> = 7)

Operator Aritmatika:

  • - $ a : Berlawanan dengan $ a.
  • $ a + $ b : Jumlah $ a dan $ b.
  • $ a - $ b : Perbedaan $ a dan $ b.
  • $ a * $ b : Produk $ a dan $ b.
  • $ a / $ b : Kuota $ a dan $ b.
  • $ a% $ b : Sisa $ a dibagi dengan $ b.
  • $ a ** $ b : Hasil menaikkan $ a ke kekuatan $ b'th (diperkenalkan di PHP 5.6)

Operator Incrementing / Decrementing:

  • ++ $ a : Menambah $ 1 per satu, lalu mengembalikan $ a.
  • $ a ++ : Mengembalikan $ a, lalu menambahkan $ satu per satu.
  • - $ a : Menurunkan $ 1 per satu, lalu mengembalikan $ a.
  • $ a-- : Mengembalikan $ a, lalu menurunkan $ a per satu.

Operator Bitwise:

  • $ a & $ b : Bit yang diatur dalam $ a dan $ b ditetapkan.
  • $ a | $ b : Bits yang diatur dalam $ a atau $ b ditetapkan.
  • $ a ^ $ b : Bit yang diatur dalam $ a atau $ b tetapi tidak keduanya ditetapkan.
  • ~ $ a : Bit yang diatur dalam $ a tidak disetel, dan sebaliknya.
  • $ a << $ b : Geser bit $ a $ b langkah ke kiri (setiap langkah berarti "kalikan dengan dua")
  • $ a >> $ b : Geser bit $ a $ b langkah ke kanan (setiap langkah berarti "membagi dengan dua")

Operator String:

  • $ a. $ b : Penggabungan $ a dan $ b.

Operator Array:

  • $ a + $ b: Union of $ a dan $ b.
  • $ a == $ b : BENAR jika $ a dan $ b memiliki pasangan kunci / nilai yang sama.
  • $ a === $ b : BENAR jika $ a dan $ b memiliki pasangan kunci / nilai yang sama dalam urutan yang sama dan dari jenis yang sama.
  • $ a! = $ b : BENAR jika $ a tidak sama dengan $ b.
  • $ a <> $ b : BENAR jika $ a tidak sama dengan $ b.
  • $ a! == $ b : TRUE jika $ a tidak identik dengan $ b.

Operator Penugasan:

  • $ a = $ b : Nilai $ b ditetapkan ke $ a
  • $ a + = $ b : Sama seperti $ a = $ a + $ b
  • $ a - = $ b : Sama seperti $ a = $ a - $ b
  • $ a * = $ b : Sama seperti $ a = $ a * $ b
  • $ a / = $ b : Sama seperti $ a = $ a / $ b
  • $ a% = $ b : Sama seperti $ a = $ a% $ b
  • $ a ** = $ b : Sama seperti $ a = $ a ** $ b
  • $ a. = $ b : Sama seperti $ a = $ a. $ b
  • $ a & = $ b : Sama seperti $ a = $ a & $ b
  • $ a | = $ b : Sama seperti $ a = $ a | $ b
  • $ a ^ = $ b : Sama seperti $ a = $ a ^ $ b
  • $ a << = $ b : Sama seperti $ a = $ a << $ b
  • $ a >> = $ b : Sama seperti $ a = $ a >> $ b

Catatan

and operator dan or operator memiliki prioritas yang lebih rendah daripada operator penugasan =.

Ini artinya itu $a = true and false; setara dengan ($a = true) and false.

Dalam kebanyakan kasus, Anda mungkin ingin menggunakannya && dan ||, yang berperilaku dengan cara yang dikenal dari bahasa seperti C, Java atau JavaScript.


96