PHP'de yorum yapmak için karma işaretini (#) kullanabilir miyim?


144

Ben hiç, hiç, #yorum için hashes ( ) kullanarak bir PHP dosyası görmedim . Ama bugün aslında yapabileceğimin farkına vardım! Herkesin //bunun yerine kullanmasının bir nedeni olduğunu varsayıyorum , işte buradayım.

Kişisel tercihlerin yanı sıra, yorumlar //yerine kullanmak #için herhangi bir neden var mı ?


16
Bu, karma etiketi değil, karma (veya bulunduğunuz ülkeye bağlı olarak kare veya kare). Bir hashtag, Twitter'daki içeriği kategorilere ayırmanın bir yoludur.
Quentin

HTML çıkış eşdeğerini kullanabilirsiniz & # 35; kodunuzda # sembolüne ihtiyacınız varsa
9'da dotoree

22
Düşündüm #... sembol karma etiketi çağrıldı :( için oylama aşağı kadar ağır Hiçbir neden Ders öğrendim.
HUBRO

3
#Tek satırlık yorumlar için, //kodu yorumlamak ve /* ... */yorum blokları için kullanmak istiyorum
John Magnolia

Yanıtlar:


163

Sorunun cevabı PHP'de tek satırlı yorumlar için "#" ve "//" kullanma arasında fark var mıdır ? olan hiçbir .

Fark yok. PHP kaynak kodunun ayrıştırma kısmına bakıldığında, hem "#" hem de "//" aynı kod tarafından işlenir ve bu nedenle aynı davranışa sahiptirler.


3
N ++ (6.55) 'in #yorumları her zaman doğru katlayamayacağını unutmayın . Ben büyük PHP dosyalarında fark: 2k satır veya daha fazla. Bazen kodu birden çok # üzerine katlamaya başlar.
CoR

1
Ben #yorumları çok tercih ederim //.. ama her zaman #PSR uyumlu olup olmadığını merak ediyordum .. Öyle mi?
Stphane

5
Hash, rotaları tanımlarken yardımcı olur, örn. # /news (code here)yerine // /news (code here). 2k LoC dosyalarına gelince, yorum etiketinin kullanılmasından başka sorunlar olduğunu düşünüyorum :)
Juha Untinen

11

PHP'nin belgeleri farklı yorum olasılıklarını açıklar. Bkz. Http://www.php.net/manual/en/language.basic-syntax.comments.php

Ancak "//" ve "#" arasındaki farklar hakkında hiçbir şey söylemez. Bu yüzden teknik bir fark olmamalıdır. PHP C sözdizimi kullanır, bu yüzden programcıların çoğu C tarzı yorumlar '//' kullanmanın nedeni olduğunu düşünüyorum.


1
Veya perl sözdizimini kullanır, bu durumda "#" görünmesini sağlar. Ve perl yorum sözdizimini unix-ey kabuklarından alır.
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


// bir C tarzı yorum
Blue Water

6

Kişisel tercihin yanı sıra, yorumlar için # yerine // kullanmak için herhangi bir neden var mı?

Bence bu sadece kişisel bir tercih. Arasında hiçbir fark yoktur //ve #. Şahsen #tek satır yorum, //kod yorum ve /** */blok yorum için kullanın.

<?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';
?>

//Kod yorum yaparken çoğu insanın kullandığından, normal kod yorumları için kullanmayı seviyorum . Ve ben #yorumlanan kod yerine, açıklanması amaçlanan yorumlar için kullanın . /**/Bir astardan kaçınmak , /**/bu kod içinde `/ ** / bulunan kodlarda kullanmaya çalıştığınızda açılış / kapanış çakışmalarını azaltır ... erken kapanma ile sonuçlanırsınız. ve bu kötü.
ahnbizcad

5

Bir düşünebilir olduğunu #yorumlama biçimi öncelikle tanıdık "shebang" (#!) Notasyonu kullanarak bir kabuk yapmak için tasarlanmıştır. Aşağıdaki komut dosyasında PHP, aynı zamanda bir yorum olduğu için ilk satırı yok saymalıdır. Misal:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Yürütülebilir bir dosyada saklarsanız, böyle bir terminalden çalıştırabilirsiniz.

./hello

Çıktı

Hello PHP

Ancak , aşağıdaki karşı örnekte gösterildiği gibi, bu mantık yanlıştır:

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

#B
echo "Hello PHP\n";

İlk satır (shebang hattı) tercüman tarafından özellikle göz ardı edilir. PHP etiketinden önceki yorum satırı, PHP etiketinin içinde olmadığı için standart çıktıya yansıtılır. Açılış PHP etiketinden sonraki yorum PHP kodu olarak yorumlanır, ancak bir yorum olduğu için yok sayılır.

Gözden geçirilmiş versiyonun çıktısı

#A
Hello PHP

13
Aslında, shebang PHP kodunun dışında , bu yüzden kesinlikle PHP için bir yorum değil . !Dosyayı kaldırmayı deneyin ve dosyayı phpkomut satırından çalıştırın : "# / usr / bin / php" yazdıracaktır. Shebang'ın göz ardı edilmesinin nedeni, PHP'nin dosyaların başlangıcında shebang satırlarını tanıması ve görmezden gelmesidir.
Ninj

Php7.4 kullanıldığında, her iki yorum da yankılanır. Bu yüzden sheband hiç yok sayılmıyor (ya da artık yok).
Chargnn

0

Ekibinizde / projenizde bazı kural kümeleri oluşturursanız ... Yorum yapılan kodun amacını ana hatlarıyla belirtmek için 2 yorum türü kullanılabilir.

Örneğin #, yapılandırma ayarlarını, alt işlevleri ve genel olarak yararlı veya önemli, ancak şu anda devre dışı bırakılmış bir kod parçasını sessize almak / devre dışı bırakmak için kullanmayı seviyorum .


tam tersini yapmaktan hoşlanıyorum, ama özünde aynı şeyi yapıyorum. kod yorumları için birini, açıklama yorumları için diğerini kullanın.
ahnbizcad

@ahnbizcad açıklama bloklarını kullanmak daha iyidir açıklama / ** * * /
d.raev

neden. ---- / - / - / - / -
ahnbizcad

0

Bunun için resmi bir PSR yok.

Ancak, tüm PSR örnek kodlarında //satır içi yorumlar için kullanırlar .

Standartlaştırmayı amaçlayan bir PSR-2 uzatma teklifi var, ancak resmi değil: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding- style-guide-additions.md # yorumlama-kodu

//PHP kültüründe daha sık kullanılır, ancak kullanımı #da iyidir . Ben şahsen, daha kısa ve bayt tasarrufu için seviyorum. Bu kişisel zevk ve önyargılı, bunun doğru bir cevabı yok, elbette bir standart olana kadar, mümkün olduğunca takip etmeye çalışmamız gereken bir şey.


Bilgisayar Bilimi alanındaki standartlarla ilgili sorun, bir standart oluşturmak için en iyi seçeneğe sahip olmanız ve Bilgisayar Bilimi'nde en iyi seçenek diye bir şey olmamasıdır. Sadece yanlış seçenekler ve daha iyi seçenekler var. Ancak "en iyi seçenek" mevcut değil.
Blue Water

0

Evet, ancak platformlar arası farklılıklar vardır.

Ben PHP yorum yapmak için her zaman # kullanın, ancak bir evlat edinme farkı fark ettim.

Windows klavyesinde # tuşunun kullanımı kolaydır. Mac klavyesinde # tuşu çoğunlukla mevcut değildir.

Bu nedenle mac kullanıcıları için, [Alt] + [3] veya [⌥] + [3] yazmak // den daha zordur, bu nedenle // yorumlarla kod görüntülemenin platformlar arası bir yolu haline gelmiştir.

Bu benim gözlemim.


0

Gönderen https://php.net/manual/en/migration53.deprecated.php

"PHP 5.3.x'te kullanımdan kaldırılan özellikler ... '#' ile başlayan yorumlar artık .INI dosyalarında kullanımdan kaldırıldı."

İşte aldın. '#' Karması varsayılan olarak yorumlanmadan yorum seçeneği olarak kalıyor gibi görünüyor. Ben iç içe if / else deyimlerinin çeşitli katmanlarını ayırt etmek ve kapanış parantezlerini işaretlemek için kullanmayı ya da kod yorumlarını diğerlerinin ilgili yayınlarda önerdiği gibi yorumlanmış koddan ayırmak için kullanmayı planlıyorum. (Not: Bağlantı, 4/23/19 tarihinden itibaren geçerli / çalışıyor, ancak bunu okurken hala çalışıp çalışmayacağını kim bilebilir?)


0

Kişisel tercihin yanı sıra, yorumlar için # yerine // kullanmak için herhangi bir neden var mı?

Ben cevap kendim için geldi ve bilmek onun iyi olduğunu YOK kod farkı.

Ancak, tercihe bağlı olarak 'shell-> perl-> php' yorum tutarlılığını 'c-> php' yoluna karşı tercih edeceğinizi iddia edebilirsiniz.

Ben php fakir bir adamın webby perl olarak yaklaştı beri # .. kullanıyordum ve sonra başkasının kodunu gördüm ve doğrudan SO geldi. ;)


-8

"#" İçeren yorumlar PHP 5.3 ile kullanımdan kaldırılmıştır. Bu yüzden daima // veya / ... / kullanın


21
Yalnızca INI dosyalarında kullanımdan kaldırılmıştır .
DisgruntledGoat

@DisgruntledGoat Resmi belgelere referans var mı?
Wilt

1
Doğrudan php.net'ten: '#' ile başlayan yorumlar artık .INI dosyalarında kullanımdan kaldırıldı.
Wilt

4
Andre, belki de bu cevabı silmenin zamanı geldi.
Jose Manuel Abarca Rodríguez

1
daha az araştırma! Seni kaybettim :) ama bu da bana INI dosyalarında # kullanımdan kaldırıldığını
Abdul Manan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.