П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 5718 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 7971 раз(а).

Учебник HTML.
Просмотров 4690 раз(а).

Руководство по PHP5.
Просмотров 1310 раз(а).

Хостинг через призму DNS.
Просмотров 6616 раз(а).

Подборка текстов стандартных документов.
Просмотров 57337 раз(а).

Учебник PHP - Самоучитель
Просмотров 4956 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 11029 раз(а).

Внешние атаки...
Просмотров 6682 раз(а).

Учебник PHP.
Просмотров 3993 раз(а).

SSI в примерах.
Просмотров 1032 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Приложение C. Переход от PHP/FI 2 к PHP 3 Вперёд

Типы выражений

PHP/FI 2.0 использовал левую часть выражения для определения того, какого типа должно быть выражение.
PHP 3.0 учитывает обе части при определении типа результата, и это может вызвать другое поведение 2.0-скриптов в 3.0.

Рассмотрим пример:
$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}

В PHP/FI 2.0 этот код выведет оба индекса $a. В PHP 3.0 вообще ничего не будет выведено. Причина в том, что в PHP 2.0 тип левого аргумента был string/строка, было сделано сравнение строк, "" не равно "0", и цикл выполнялся. В PHP 3.0, когда string сравнивается с integer, выполняется целочисленное сравнение (string конвертируется в integer). Это даёт сравнение atoi(""), равного 0, и variablelist, которое также равно 0, и поскольку 0==0, цикл не выполняется ни разу.

Исправить это просто. Замените оператор while на:
while ((string)$key != "") {


Назад Оглавление Вперёд
Синтаксис while Вверх Сообщения об ошибках изменены


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru