2012-01-22 4 views
1

Я тупик следующим кодом:PHP статические члены класса не работает

<b><i>First name *</b></i> : <input type="text" 
        name='<?php Labels::$FIRSTNAMELABEL ?>' /><br /> 

поле этого «First Name» является одним из нескольких входов на форму на моей странице. Этикетки: $ FIRSTNAMELABEL устанавливается в определении класса на «FirstName».

Вот определение класса:

class Labels { 
     static public $FIRSTNAMELABEL = "FirstName"; 
     // other static class members here for last name, phone #, etc. 
     } 

Когда форма появляется в моем браузере я свалка исходный код страницы, и вот что я получаю:

<form action="AddPerson.php" method="post"> 
<b><i>First name *</b></i> : <input type="text" 
        name='' /><br /> 

Вы заметите, что имя =» ' пусто. Он должен сказать имя = "FirstName" там в источнике страницы. Не будет пустым.

Я пробовал: одинарные кавычки, двойные кавычки, пробелы, пробелы вокруг блока php и внутри блока php вокруг ярлыков :: $ FIRSTNAMELABEL - без изменений. Когда форма отображается, и я удаляю источник страницы, я всегда получаю name = (пробел).

Я обнаружил это с помощью следующей строки кода:

if(isset($_POST[Labels::$FIRSTNAMELABEL]) 

«Исеть» всегда возвращает ложь, поэтому я сделал страницу дамп и выяснили, почему - когда форма представлена ​​там нет первого имя поля «FirstName».

Забавная вещь об этом, я имел эту форму внутри Heredoc и он работал отлично - вот часть формы в моем Heredoc:

<?php 
    // this was successfully displaying a 'name=' field on the form set to the 
    // static class label called Labels::$FIRSTNAMELABEL -- ie. the 'name' field 
    // in the page source was name="FirstName" 
function showAddContactForm() 
{ 
    $firstNameLabel = Labels::$FIRSTNAMELABEL; 
    // other field names not shown..... 

    echo <<<_END 
     <form action="AddContact.php" method="post"> 
     <b><i>First name *</b></i> : <input type="text" name=$firstNameLabel /><br /> 
     // other fields on the form not shown.. 
     </form> 
_END; 
} 
?> 

Почему мое «имя =» поле всегда пусто?

ответ

4

С первого взгляда нет эха/печати.

<b><i>First name *</b></i> : <input type="text" 
name='<?php echo Labels::$FIRSTNAMELABEL ?>' /><br /> 
+0

+1 и принят - спасибо - что сделал. По-видимому, я все еще изучаю эхо. Сегодня я смотрел этот код и пробовал материал, а эхо-сигнал не приходил мне в голову - я думаю, что код, который я скопировал из heredoc, работал отлично, убедил меня, что код работал раньше - должно быть что-то еще ». Благодарю. – wantTheBest

Смежные вопросы