SORU
4 Aralık 2009, Cuma


En iyi Uygulamalar: uzun çalışma, PHP çok satırlı dizeleri?

Eğer bu son derece basit bir soru ise özür dilerim ama benim kod biçimlendirme üzerinde obsesif kompulsif oldum biraz. not:

Bir e-posta gövde metnini oluşturacak bir dize döndüren bir işlevi olan bir sınıf var. Bu metin doğru görünüyor biçimlendirilmiş e-posta istiyorum, ama aynı zamanda bu yüzden benim kod funky göstermiyor. Demek istediğim şey şu:

class Something
{
    public function getEmailText($vars)
    {
        $text = 'Hello ' . $vars->name . ",

The second line starts two lines below.

I also don't want any spaces before the new line, so it's butted up against the left side of the screen.";
        return $text;
    }
}

ama aynı zamanda olarak yazılabilir:

public function getEmailText($vars)
{
    $text = "Hello {$vars->name},\n\rThe second line starts two lines below.\n\rI also don't want any spaces before the new line, so it's butted up against the left side of the screen.";
    return $text;
}

ama yeni hatları ve satırbaşları ile anlaşma nedir? Ne fark eder? \n\n \r\r \n\r eşdeğerdir? Hangi satırlar arasında bir satır boşluk yaratıyorum ne zaman kullanmalıyım?

Sonra çıktı tamponlama ve heredoc sözdizimi seçeneği var.

Nasıl nesneleri uzun çok satırlı dizeleri kullanarak başa çıkıyorsunuz?

CEVAP
4 Aralık 2009, Cuma


HEREDOC NOWDOC ya da kullanmalısınız.

$var = "some text";
$text = <<<EOT 
  Place your text between the EOT. It's
  the delimiter that ends the text
  of your multiline string.
  $var
EOT;

Heredoc ve Nowdoc arasındaki fark, bu bir php kodu içinde gömülü heredoc Nowdoc php kodu olarak yazdırılır iken idam alır.

$var = "foo";
$text = <<<'EOT'
  My $var
EOT;

Metin bu durumda $değere sahip olacaktır: My $var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • GWTLecturer

    GWTLecturer

    18 EKİM 2012