2012-05-16 5 views
1

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

function hidden($defaultSort=""){ 
    $defaultSort = 'a';?> 
    <input type="hidden" name="sort" id="<?php print $this->id;?>sort" value='<?php print $defaultSort; ?>' /> 
    <?php print $defaultSort; 
} 

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

<input type="hidden" value="&lt;br /&gt;&lt;b&gt;Notice&lt;/b&gt;: Undefined variable: defaultSort in &lt;b&gt;/www/sptdev/htdocs/includes/v7/sptSearchBox.php&lt;/b&gt; on line &lt;b&gt;24&lt;/b&gt;&lt;br /&gt;" id="searchFormSearchsort" name="sort"/>a 

Любые идеи, почему я получаю Undefined переменной ошибки ?

Дополнительная информация: Строка 24, из которой исходит ошибка, - это линия со скрытым входом.

Я обнаружил, что это работает как ожидается в IE8.

Это не имеет большого смысла для меня, поскольку PHP является на стороне сервера, и это не должно иметь ничего общего с браузером.

ОБНОВЛЕНИЕ - Проблема заключается в том, что я выделял и выбирал «View Selection Source» в Firefox. Когда я просто использую «View Page Source», это выглядит отлично.

+0

Выход отличается от того, что я вижу в коде. Всегда проверяйте, чтобы код был таким же, как тот, который сгенерировал вывод. (порядок атрибутов отличается, кто знает, что еще делает.) – devsnd

+1

Worksforme: http://codepad.org/PUb9iQSR – biziclop

+0

Используйте эхо вместо печати. Print возвращает Boolean относительно того, было ли это успешным или нет, где echo return void –

ответ

0

Try:

function hidden($defaultSort=""){ 
    $defaultSort = 'a'; 
    echo '<input type="hidden" name="sort" id="' , $this->id , 'sort" value="' , $defaultSort ,'"/>'; 
    print $defaultSort; 
} 

Edit: Я просто попробовал этот код и он работает отлично. Попробуйте скопировать-вставить его как есть и посмотреть, работает ли он на вас.

+0

Была отличная идея, но я получил тот же результат. – Mike

+0

Зачем это работать, если код OP не работает? – JJJ

+0

PHP использует '.' not', 'для конкатенации –

0

Ваш код верный. Вероятно, вы смотрите не в том месте (возможно, вы изменяете родительский класс и метод с переопределением)

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