Сохранение строки в переменной дает ошибку из-за конкатенации? - PullRequest
1 голос
/ 16 ноября 2011

Я делаю следующее в моем PHP

public $message = "<p>A new user has requested to signup for Company Name</p>
                   <p><strong>Name:</strong>". $name ."</p>
                   <p><strong>Email Address:</strong>" . $email . "</p>
                   <p><strong>Contact Number:</strong>" . $contact_number . "</p>
                   <p>Please check the attached file, for further details.</p>
                   <p>Thanks,<br/>Company Name Email Centre</p>";

Как вы видите, я пытаюсь создать небольшой сегмент HTML, вкрапленный некоторыми переменными PHP, однако я получаю следующую ошибку

Ошибка разбора: синтаксическая ошибка, неожиданное '.', Ожидание ',' или ';'

В строке 31 говорится, что это второй тег <p>, однако я не вижу проблемы

Ответы [ 5 ]

2 голосов
/ 16 ноября 2011

Не следует использовать конкатенацию var / string в определении класса var. Почему бы вам не написать такой метод, как getMessage() или printMessage() или что-то еще?

0 голосов
/ 16 ноября 2011

Вы не можете сделать это в определении атрибута класса, вместо этого определите атрибут, затем присвойте ему значение в конструкторе класса:

class Test {
    public $message;
    public $name = 'Demo Name';
    public function __construct() {
        $this->message = 'anything you want' . $this->name; # etc
    }
}

В реальном определении вы можете дать только литералы, без переменныхоценки.

Ура

0 голосов
/ 16 ноября 2011

Попробуй так.и посмотрите на http://php.net/manual/de/language.types.string.php

public $message = "<p>A new user has requested to signup for Company Name</p>" .
                  "<p><strong>Name:</strong>". $name ."</p>" . 
                  "<p><strong>Email Address:</strong>" . $email . "</p>" .
                  "<p><strong>Contact Number:</strong>" . $contact_number . "</p>" .
                  "<p>Please check the attached file, for further details.</p>" .
                  "<p>Thanks,<br/>Company Name Email Centre</p>";
0 голосов
/ 16 ноября 2011
public $message= "<p>A new user has requested to signup for Company Name</p>\
                   <p><strong>Name:</strong>". $name ."</p>\
                   <p><strong>Email Address:</strong>" . $email . "</p>\
                   <p><strong>Contact Number:</strong>" . $contact_number . "</p>\
                   <p>Please check the attached file, for further details.</p>\
                   <p>Thanks,<br/>Company Name Email Centre</p>";


/* Try this it will work ... ( u need to escape lines using \ ) */
0 голосов
/ 16 ноября 2011

PHP завершает строку на новой строке. Вам нужно объединять каждый раз, когда начинается новая строка:

public $message = "<p>A new user has requested to signup for Company Name</p>"
                   ."<p><strong>Name:</strong>". $name ."</p>"
                   ."<p><strong>Email Address:</strong>" . $email . "</p>"
                   ."<p><strong>Contact Number:</strong>" . $contact_number . "</p>"
                   ."<p>Please check the attached file, for further details.</p>"
                   ."<p>Thanks,<br/>Company Name Email Centre</p>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...