Bisakah saya menggunakan tanda pagar (#) untuk berkomentar di PHP?


144

Saya belum pernah melihat file PHP menggunakan hashes ( #) untuk berkomentar. Tapi hari ini aku sadar kalau aku benar-benar bisa! Saya berasumsi ada alasan mengapa semua orang menggunakannya //, jadi di sinilah saya.

Apakah ada alasan, selain dari preferensi pribadi, untuk digunakan //daripada #untuk komentar?


16
Itu hash (atau pound, atau kuadrat, tergantung di negara mana Anda berada), bukan tag hash. Tagar adalah alat untuk mengkategorikan konten di Twitter.
Quentin

Anda dapat menggunakan setara dengan HTML escape & # 35; jika Anda memerlukan simbol # dalam kode Anda
dotoree

22
Saya pikir #simbol itu disebut tag hash ... :( Tidak ada alasan untuk turun memilih begitu banyak. Pelajaran yang dipelajari
Hubro

3
Saya suka menggunakan #untuk komentar satu baris, //untuk mengomentari kode & /* ... */untuk blok komentar
John Magnolia

Kemungkinan rangkap dari Komentar PHP # vs //
nawfal

Jawaban:


163

Jawaban atas pertanyaan Apakah ada perbedaan antara menggunakan "#" dan "//" untuk komentar satu baris dalam PHP? adalah tidak ada .

Tidak ada perbedaan. Dengan melihat bagian parsing dari kode sumber PHP, baik "#" dan "//" ditangani oleh kode yang sama dan karenanya memiliki perilaku yang sama persis.


3
Perhatikan bahwa N ++ (6.55) tidak selalu dapat melipat #komentar dengan benar. Saya perhatikan bahwa dalam file PHP besar: 2k baris atau lebih. Terkadang mulai melipat kode pada banyak #.
COR

1
Saya lebih suka #komentar daripada //yang .. tapi saya selalu bertanya-tanya apakah #PSR complient .. Apakah itu?
Stphane

5
Hash sangat membantu ketika menggambarkan rute, misalnya. # /news (code here)bukannya // /news (code here). Sedangkan untuk file LoC 2k, saya pikir ada masalah lain selain tag komentar yang digunakan :)
Juha Untinen

11

Dokumentasi PHP menjelaskan berbagai kemungkinan komentar. Lihat http://www.php.net/manual/en/language.basic-syntax.comments.php

Tapi itu tidak mengatakan apa-apa tentang perbedaan antara "//" dan "#". Jadi seharusnya tidak ada perbedaan teknis. PHP menggunakan sintaks C, jadi saya pikir itulah alasan mengapa sebagian besar programmer menggunakan komentar gaya-C '//'.


1
Atau ia menggunakan sintaks perl, dalam hal ini "#" muncul. Dan perl mendapatkan sintaks komentarnya dari shell unix-ey.
Gerard ONeill

7
<?php
    echo 'This is a test'; // This is a one-line C++ style comment
    /* This is a multi-line comment.
       Yet another line of comment. */
    echo 'This is yet another test.';
    echo 'One Final Test'; # This is a one-line shell-style comment
?>

RTM


// adalah komentar gaya C
Blue Water

6

Apakah ada alasan, selain dari preferensi pribadi, untuk menggunakan // daripada # untuk komentar?

Saya pikir itu hanya preferensi pribadi saja. Tidak ada perbedaan antara //dan #. Saya pribadi menggunakan #komentar satu baris, //untuk mengomentari kode dan /** */untuk komentar blokir.

<?php
    # This is a one-line comment
    echo 'This is a test';

    // echo 'This is yet another test'; // commenting code

    /** 
     * This is a block comment
     * with multi-lines 
     */
    echo 'One final test';
?>

Saya suka menggunakan //komentar kode biasa, karena itulah yang kebanyakan orang gunakan ketika berkomentar kode. Dan saya menggunakan #untuk komentar yang dimaksudkan untuk menggambarkan, daripada menjadi kode yang dikomentari. Menghindari /**/satu baris mengurangi konflik pembukaan / penutupan ketika Anda mencoba menggunakan /**/kode yang memiliki `/ ** / dalam kode itu ... Anda berakhir dengan penutupan prematur. dan itu buruk.
ahnbizcad

5

Orang mungkin berpikir bahwa #bentuk komentar terutama dimaksudkan untuk membuat skrip shell menggunakan notasi "shebang" (#!) Yang sudah dikenal. Dalam skrip berikut, PHP harus mengabaikan baris pertama karena itu juga komentar. Contoh:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Jika Anda menyimpannya dalam file yang dapat dieksekusi, Anda dapat menjalankannya dari terminal seperti ini

./hello

Outputnya adalah

Hello PHP

Namun , alasan ini tidak benar, seperti yang ditunjukkan oleh contoh berikut:

#!/usr/bin/php
#A
<?php

#B
echo "Hello PHP\n";

Baris pertama (garis shebang) secara khusus diabaikan oleh penerjemah. Baris komentar sebelum tag PHP digaungkan ke output standar karena tidak di dalam tag PHP. Komentar setelah tag PHP pembuka ditafsirkan sebagai kode PHP tetapi diabaikan karena itu adalah komentar.

Output dari versi revisi adalah

#A
Hello PHP

13
Sebenarnya, shebang berada di luar kode PHP, jadi ini sama sekali bukan komentar untuk PHP . Coba hapus !, dan jalankan file melalui phpbaris perintah: itu akan mencetak "# / usr / bin / php". Alasan mengapa shebang diabaikan adalah karena PHP mengenali garis shebang di awal file dan mengabaikannya.
Ninj

Menggunakan php7.4, kedua komentar digaungkan. Jadi sheband tidak (atau tidak lagi) diabaikan sama sekali.
Chargnn

0

Jika Anda menetapkan beberapa set aturan di tim / proyek Anda ... 2 jenis komentar dapat digunakan untuk menguraikan tujuan dari kode yang dikomentari.

Sebagai contoh saya suka menggunakan #untuk menonaktifkan / menonaktifkan pengaturan konfigurasi, sub fungsi dan secara umum bagian dari kode yang berguna atau penting, tetapi baru saja dinonaktifkan.


Saya suka melakukan yang sebaliknya, tetapi pada dasarnya hal yang sama dalam roh. gunakan satu untuk komentar kode, dan lainnya untuk komentar deskripsi.
ahnbizcad

@ahnbizcad lebih baik menggunakan blok komentar untuk deskripsi / ** * * /
d.raev

Mengapa. ---- / - / - / - / -
ahnbizcad

0

Tidak ada PSR resmi untuk itu.

Namun, dalam semua kode contoh PSR, mereka digunakan //untuk komentar sebaris.

Ada proposal ekstensi PSR-2 yang bertujuan untuk membakukannya, tetapi itu tidak resmi: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding- style-guide-additions.md # kode-komentar

//lebih umum digunakan dalam budaya PHP, tetapi tidak masalah untuk digunakan #juga. Saya pribadi suka, karena lebih pendek dan menghemat byte. Ini selera pribadi dan bias, tidak ada jawaban yang tepat untuk itu, sampai, tentu saja, itu menjadi standar, yang merupakan sesuatu yang harus kita coba ikuti sebanyak mungkin.


Masalah dengan standar di bidang Ilmu Komputer adalah bahwa untuk membuat standar, Anda harus memiliki pilihan terbaik, dan dalam Ilmu Komputer tidak ada yang namanya pilihan terbaik. Hanya ada opsi yang salah, dan opsi yang lebih baik. Tetapi "opsi terbaik" tidak ada.
Blue Water

0

Ya, namun ada perbedaan lintas platform.

Saya menggunakan # sepanjang waktu untuk berkomentar dalam PHP, tapi saya perhatikan ada perbedaan adopsi.

Pada keyboard windows tombol # mudah digunakan. Pada tombol keyboard mac # sebagian besar tidak ada.

Jadi untuk pengguna mac, [Alt] + [3] atau [⌥] + [3] lebih sulit untuk diketik daripada //, jadi // telah menjadi cara lintas platform untuk menampilkan kode dengan komentar.

Ini pengamatan saya.


0

Dari https://php.net/manual/en/migration53.deprecated.php

"Fitur-fitur usang dalam PHP 5.3.x ... Komentar yang dimulai dengan '#' sekarang ditinggalkan dalam file .INI."

Itu dia. Hash '#' tampaknya tetap sebagai opsi komentar secara default dengan tidak ditinggalkan. Saya berencana untuk menggunakannya untuk membedakan berbagai lapisan pernyataan bersarang jika / selain itu dan menandai tanda kurung penutupnya, atau gunakan untuk membedakan komentar kode dari kode yang dikomentari seperti yang disarankan orang lain dalam posting terkait. (Catatan: Tautan valid / berfungsi pada 4/23/19, meskipun siapa yang tahu apakah itu akan tetap berfungsi saat Anda membaca ini.)


0

Apakah ada alasan, selain dari preferensi pribadi, untuk menggunakan // daripada # untuk komentar?

Saya datang ke sini untuk jawabannya sendiri, dan bagus untuk mengetahui bahwa TIDAK ada perbedaan kode.

Namun, preferensi-bijaksana orang dapat berpendapat bahwa Anda lebih suka konsistensi komentar 'shell-> perl-> php' dibandingkan cara 'c-> php'.

Karena saya melakukan pendekatan php sebagai perl webby orang miskin, saya menggunakan # .. dan kemudian saya melihat kode orang lain dan langsung ke SO. ;)


-8

Komentar dengan "#" tidak digunakan lagi dengan PHP 5.3. Jadi selalu gunakan // atau / ... /


21
Mereka hanya ditinggalkan dalam file INI .
DisgruntledGoat

@DisgruntledGoat Ada referensi ke dokumentasi resmi?
Layu

1
Langsung dari php.net: Komentar yang dimulai dengan '#' sekarang tidak digunakan lagi dalam file .INI.
Layu

4
Andre, mungkin sudah waktunya untuk menghapus jawaban ini.
Jose Manuel Abarca Rodríguez

1
kurang penelitian! membuat Anda rugi :) tetapi ini juga membantu saya tahu bahwa # tidak digunakan lagi dalam file INI
Abdul Manan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.