Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Опечатки и неточности в книге PHP5 — пишите сюда. (Дмитрий Котеров)
Goto page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
uhamurad
Участник форума



Joined: 20 Feb 2008
Posts: 21
Карма: 1
   поощрить/наказать

Location: Махачкала

PostPosted: Mon May 26, 2008 7:56 pm (написано за 45 секунд)
   Post subject:
Reply with quote

Привожу опечатки, не отмеченные на странице php5.dklab.ru/errors_2007-04-12.htm

114: (второй блок "Внимание")
  напечатано: Вряд ли вы захотите иметь установленный сервер в каталоге Z:\usr\local\apache\Apache?
  должно быть: Вряд ли вы захотите иметь установленный сервер в каталоге Z:\usr\local\apache\Apache!

263: (первый абзац нового параграфа)
  напечатано: Рассмотрим соответствующий пример (листинг 9.2)
  должно быть: Рассмотрим соответствующий пример (листинг 12.2)

278: (Листинг 13.3, 7-я строчка)
  напечатано: ... {$dossier[$i][name]} ...
  должно быть: ... {$dossier[$i]['name']} ...

287: (середина самого большого абзаца)
  напечатано: ... (обозначенное =знМ) ...
  должно быть: ... (обозначенное =знN) ...

288: (первый абзац)
  напечатано: ... представлено в листинге 11.2
  должно быть: ... представлено в листинге 14.2

322: (первая строка кода)
  напечатано: ... echo "<a href=/script.php?param=".urlencode($userData);
  должно быть: ... echo "<a href=/script.php?param=".urlencode($userData).">";

327: (первый маркерованный список, второй пункт)
  должно быть: буква "с" не того шрифта, что остальные буквы

417: (последняя строчка кода в описании функции JDToGregorian)
  напечатано: $list = explode($gregorian, "/");
  должно быть: $list = explode("/", $gregorian);

536: (вторая строчка страницы)
  напечатано: UPDATE ИмяТаблицы SET (ИмяПоля1='зн1', ИмяПоля2='зн2', ...) WHERE выражение
  должно быть: UPDATE ИмяТаблицы SET ИмяПоля1='зн1', ИмяПоля2='зн2', ... WHERE выражение

584: (конец абзаца описания функции imageColorClosest)
  напечатано: ... соответствует понятию "зеленый"
  должно быть: ... соответствует понятию "желтый"

747: (4-й пункт 2-го маркированного списка)
  напечатано: Документ является расширением документа Document Object Model Level 2 Style Specification.
  должно быть: Документ является расширением документа Document Object Model Level 2 Events Specification.

960: (3-я строчка страницы с конца)
  напечатано: атрибут format элемента...
  должно быть: атрибут method элемента...

969: (второй абзац)
  напечатано: ... получило название EXST
  должно быть: ... получило название EXSLT
Back to top
View user's profile Send private message
reutovo
Заглянувший



Joined: 15 Jun 2008
Posts: 8
Карма: 2
   поощрить/наказать

Location: Реутов

PostPosted: Sun Jun 15, 2008 5:14 pm (спустя 19 дней 21 час 18 минут; написано за 6 минут 54 секунды)
   Post subject:
Reply with quote

Я новенький на форуме, читаю книгу, и нашел пару эммм, так сказать замечаний, почитал эту тему, на один вопрос нашел ответ, а вот на второй к сожалению нет.

стр. 225 "Константы"
Quote:
//Предположим, определена константа PI, равная 3.1416 (3.1459)
$a= 2.34 * sin(3*PI/8) + 5;
echo "Это число PI";
echo "Это число ".PI;
И все бы хорошо, да вот константа не определена! И как ее определить, до этого примера не слова к сожалению!

Я понимаю, что подробнее о константах далее текст идет, но не совсем корректно приводить пример - получить не то что нужно в браузере, а потом узнать как использовать константу.

PS: Я могу конечно ошибаться, но книгу читаю не пропуская не единой буквы.
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 200
   поощрить/наказать

Location: 007 495

PostPosted: Sun Jun 15, 2008 8:09 pm (спустя 2 часа 54 минуты; написано за 9 секунд)
   Post subject:
Reply with quote

reutovo
Используйте M_PI, если Вам хочется :).
Back to top
View user's profile Send private message Send e-mail
reutovo
Заглянувший



Joined: 15 Jun 2008
Posts: 8
Карма: 2
   поощрить/наказать

Location: Реутов

PostPosted: Sun Jun 15, 2008 8:26 pm (спустя 17 минут; написано за 2 минуты 10 секунд)
   Post subject:
Reply with quote

Юрий Насретдинов wrote:
reutovo
Используйте M_PI, если Вам хочется :).
Я видимо не правильно выразился, почему например нельзя было рассказать в книжке о функции define() в начале главы, а уже потом окунаться в более "тонкие" подробности?

PS: Извиняюсь за разведенный в теме флейм. Я просто новичок и по просту много еще не знаю!
Back to top
View user's profile Send private message
Bekzhan
Заглянувший



Joined: 25 Jun 2008
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Wed Jun 25, 2008 1:50 pm (спустя 9 дней 17 часов 23 минуты; написано за 8 минут 54 секунды)
   Post subject:
Reply with quote

в компиляции libxml, libxslt и php5 в среде Unix
пожалуйста уточните надо ли писать там в компиляции php где ./configure дополнительно --with-iconv=<DIR>
потому что после конфигурации именно в нем он ишет эту iconv и дает error.
и какую каталог там должна указываться где <DIR>

пример процесс ошибок такая:
checking for iconv support... yes
checking for iconv... no
checking for libiconv... no
configure: error: Please specify the install prefix of iconv with --with-iconv=<DIR>
# make <enter>
no target to make
Back to top
View user's profile Send private message
Ruslan P.Brika
Заглянувший



Joined: 04 Jul 2008
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Tue Jul 08, 2008 4:44 pm (спустя 13 дней 2 часа 54 минуты; написано за 3 минуты 21 секунду)
   Post subject:
Reply with quote

стр. 232
$x = !($b || $c) && $d; // true, если $b и $c ложны, а $d - истинно
$x = !($b || $c) && $d; // true, если $b или $c ложны, а $d - истинно
условие стоит || (ИЛИ) - значит будет выполняться при условии, если хотябы один из операторов удовлетворяет требованиям
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 200
   поощрить/наказать

Location: 007 495

PostPosted: Wed Jul 09, 2008 1:32 am (спустя 8 часов 47 минут; написано за 2 минуты 46 секунд)
   Post subject:
Reply with quote

Ruslan P.Brika
Все правильно:

НЕ (А ИЛИ Б) => (НЕ А) И (НЕ Б)

Можете сами проверить:

НЕ (1 ИЛИ 1) = НЕ (1) = 0
(НЕ 1) И (НЕ 1) = 0

НЕ (1 ИЛИ 0) = НЕ (1) = 0
(НЕ 1) И (НЕ 0) = 0 И 1 = 0

НЕ (0 ИЛИ 0) = НЕ (0) = 1
(НЕ 0) И (НЕ 0) = 1 И 1 = 1

случай с 0 ИЛИ 1 полностью симметричен случаю 1 ИЛИ 0
Back to top
View user's profile Send private message Send e-mail
URL vs. URI
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Nov 03, 2008 11:35 pm (спустя 3 месяца 25 дней 22 часа 3 минуты; написано за 5 минут 4 секунды)
   Post subject:
Reply with quote

стр. 61 по поводу различия URL и URI

URL полный путь ... URI его часть расположенная после имени хоста и номера порта.

URL и URI синтаксически одно и тоже, хотя URI не обязательно должен соответсвовать некоторому документу в сети и должен/
Кроме того бывают URI в виде URN или чего там еще. Можно сказать, что URL Подмножество URI. Но не только это.
Немного разнится их семантика. URL означает адрес, а URI - имя. То есть сказать Гвидо проживающий в Ареццо и Гвидо Аретинский это примерно соответсвует URL vs. URI/
Back to top
гость
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Nov 07, 2008 12:02 am (спустя 3 дня 27 минут; написано за 1 минуту 50 секунд)
   Post subject:
Reply with quote

стр. 300 листинг 14.15
в самом начале:
"// фактически возвращает $a * $a * ($a+1) * ($a+1)
на самом деле возвращает $a * $a * $a * $a
т.к. в ф-ии child мы не изменяем $b
Back to top
HEREDOC & \s
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Nov 16, 2008 8:11 pm (спустя 9 дней 20 часов 8 минут; написано за 1 минуту 33 секунды)
   Post subject:
Reply with quote

(2008) c. 186

после <<<MARKER и до конца строки не должны иди никакие непробельные символы

-пробельные символы тоже дают parse error
Back to top
HEREDOC & bla-bla-bla
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Nov 16, 2008 9:06 pm (спустя 55 минут; написано за 2 минуты 45 секунд)
   Post subject:
Reply with quote

Сорри не обратил сразу внимание на сл.
(2008)с.186

завершающая строка (авт.- MARKER) должна заканчиваться точкой с запятой

- не должна, но может. Точка с запятой может быть и на следующей строке

Привычный Perl-приграммисту синтаксис работать не будет

- ясный перец. На Пыхе ж пишем так

echo strip_tags(<<<EOD
Какой-то текст с <b>тегами</b>.
EOD
);
Back to top
action=$_SERVER[SCRIPT_N]
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Nov 16, 2008 11:50 pm (спустя 2 часа 44 минуты; написано за 2 минуты 9 секунд)
   Post subject:
Reply with quote

(2008) c.201

Обратите внимание на полезный прием: в параметре action тега form ... извлекли из переменной окружения SCRIPT_NAME/ Это позволило не "привязываться" к имеи файла.

- Если опустить атрибут action эффект будет тот же самый.
Back to top
fopen ($mode)
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Nov 25, 2008 1:23 am (спустя 8 дней 1 час 32 минуты; написано за 3 минуты 23 секунды)
   Post subject:
Reply with quote

(2008) c.312

Авторы полагают, что в некоторых режимах (w+ и a) требуются существование файлов, в прортивном случае код закончтися с ошибкой. Это не так.
Кроме того отсутсвует $mode === "x"

Вот копипастинг русской документации
Quote:
'r' Открывает файл только для чтения; помещает указатель в начало файла.
'r+' Окрывает файл для чтения и записи; помещяет указатель в начало файла.
'w' Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
'w+' Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
'a' Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
'a+' Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
'x' Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст предупреждение уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2). Эта опция поддерживается начиная с версии PHP 4.3.2 и выше, и работает только для локальных файлов.
'x+' Создаёт и открывает для чтения и записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст предупреждение уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2). Эта опция ...
Back to top
file with FILE_IGNORE_NEW
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Nov 25, 2008 10:10 pm (спустя 20 часов 46 минут; написано за 1 минуту 28 секунд)
   Post subject:
Reply with quote

(2008) c.323

"Неудобство этой функции (file) состоит в том, что символы сконца строки не вырезаются ..."

- параметр FILE_IGNORE_NEW_LINES делает это.
Back to top
void restore_reeor_hanler
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 12:48 am (спустя 1 день 2 часа 38 минут; написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

(2008) c.391

Ошибочно указана сигнатура void restore_error_handler()

Такая функция практически бесполезна. На самом деле сигнатура такая

- bool restore_error_handler(void)
Back to top
void restore_error_hanler
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 12:55 am (спустя 6 минут; написано за 3 минуты 2 секунды)
   Post subject:
Reply with quote

void restore_reeor_hanler wrote:
(2008) c.391

Ошибочно указана сигнатура void restore_error_handler()

Такая функция практически бесполезна. На самом деле сигнатура такая

- bool restore_error_handler(void)
Погорячился, сорри. Функция всегда возвращает TRUE, так что проблемы с count++ count-- остаются (Я то думал что при неуспехе возвратится FALSE).
Но все же не void.
Back to top
int eval()
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 1:05 am (спустя 9 минут; написано за 58 секунд)
   Post subject:
Reply with quote

{2008) c. 397

int eval(string)

- разумеется, mixed eval(string)
Back to top
eval(~<?php~)
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 1:15 am (спустя 9 минут; написано за 1 минуту 59 секунд)
   Post subject:
Reply with quote

(2008) c.196

.. в ней (в параметре eval()-авт.) может быть все, что допустимо в сценарии...
- ... открытие и закрытие тегов <? и ??

- в документации сказано иначе
Quote:
Also remember that variables given values under eval() will retain these values in the main script afterwards.

Parameters

code_str
    The code string to be evaluated. code_str [b]does not [/b]have to contain PHP Opening tags.
Back to top
eval(?php)
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 1:29 am (спустя 14 минут; написано за 5 минут 57 секунд)
   Post subject:
Reply with quote

eval(~<?php~) wrote:
(2008) c.196

.. в ней (в параметре eval()-авт.) может быть все, что допустимо в сценарии...
- ... открытие и закрытие тегов <? и ??

- в документации сказано иначе
Quote:
Also remember that variables given values under eval() will retain these values in the main script afterwards.

Parameters

code_str
    The code string to be evaluated. code_str does not have to contain PHP Opening tags.
Такой код работает в нарушение документации
Code (php): скопировать код в буфер обмена
eval (www.php.net/eval)("?>be-be<?")
Не уверен, что есть хотябы одна причина так рисковать, а не испоьзовать документированные возможности.

А такой код не работет

Такой код работает в нарушение документации (undefined constanr php)
Code (php): скопировать код в буфер обмена
eval (www.php.net/eval)("?>be-be<?php")
Я не уверен, что следует в учебных руководствах прививать любовь к "левым" приемам.
Back to top
eval(<?php)
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 1:35 am (спустя 5 минут; написано за 7 минут 55 секунд)
   Post subject:
Reply with quote

А такой код не работет (undefined constnt php)
Code (php): скопировать код в буфер обмена
eval (www.php.net/eval)("?>be-be<?[b]php[/b]")
Back to top
eval(<?php)
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 1:45 am (спустя 10 минут; написано за 2 минуты 7 секунд)
   Post subject:
Reply with quote

Продолжил игры с eval("?><?")
такой код тоже не выполняется (parse error)
Code (php): скопировать код в буфер обмена
<?php
$a=1;
eval (www.php.net/eval) ("?>a=<? $a++;");
echo (www.php.net/echo) $a;
?>
Д делаем вывод о случайном эффекте eval (фактически баге PHP) при правильной работе
Code (php): скопировать код в буфер обмена
<?php
$a=1;
eval (www.php.net/eval) ("?>a=<?");
echo (www.php.net/echo) $a;
?>
Back to top
construction eval
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 7:31 pm (спустя 17 часов 45 минут; написано за 2 минуты 54 секунды)
   Post subject:
Reply with quote

(2008) c.396

"... эта функция (eval-авт.)"

- eval - это не функция, а языковая конструкция. Это важно в чатности имея в вилу что нельзя вызвоть символически

"Код в $code использует те же самые глобалтные переменные..."

- не обязательно глобальные, если вызывается внутри функции. переменные из текущего контекста - глобальные или лоокальные.
Back to top
xml valid
Guest





Карма: 388
   поощрить/наказать


PostPosted: Thu Nov 27, 2008 10:19 pm (спустя 2 часа 48 минут; написано за 5 минут 29 секунд)
   Post subject:
Reply with quote

(2008) c.413

"Этот способ хорош только для XML файлов,для которых точно известно, что внутри тега не может содержаться символ >"

- Довольно распространенное заблуждение. Явно представлять в виде сущности следует только < как &lt; и кроме этого собственно & как &amp;
Кодировать > как &gt; сдедует только в некоторых секциях CDATA, которые должны содержать ]]> как ]]&gt;
Вот соответсвующее место из спецификации

[quote]
2.4 Символьные данные и разметка

Текст представляет собой смесь символьных данных и разметки. Разметка бывает в форме начальных тегов, конечных тегов, тегов пустых элементов, ссылок на сущности, ссылок на символы, комментариев, разделителей разделов CDATA, объявлений типа документа и инструкций по обработке.

Весь неразмеченный текст составляет символьные данные документа.

Амперсанд (&) и левая угловая скобка (<) могут представляться в явном виде только в качестве разделителей разметки или в комментарии, инструкции по обработке или в разделе CDATA. Кроме того, они допустимы в литеральных значениях сущностей объявления внутренней сущности; см. "4.3.2 Правильные анализируемые сущности". Если эти символы необходимы в другом месте, их нужно кодировать специальным образом с помощью числовых ссылок на символы или строк "&amp;" и "&lt;" соответственно. Правая угловая скобка (>) может представляться строкой "&gt;" и должна, для совместимости, кодироваться с помощью комбинации "&gt;" или ссылки на символ, если она расположена в строке "]]>" содержимого, если только эта строка не обозначает конец раздела CDATA.

В содержимом элементов символьными данными является любя строка символов, не содержащая начального ограничителя какого-либо элемента разметки. В разделе CDATA символьными данными является любая строка символов, не включающая конечный ограничитель раздела CDATA, "]]>".

Чтобы значения атрибутов могли содержать как двойные, так и одинарные кавычки, апостроф или одинарная кавычка (') может представляться комбинацией "&apos;", а двойная кавычка (") - комбинацией "&quot;". Си
[quote]
Back to top
/(?R)/
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Nov 28, 2008 8:59 pm (спустя 22 часа 39 минут; написано за 2 минуты 54 секунды)
   Post subject:
Reply with quote

(2008) c. 420

"... когда необходимо учитывать вложенность элементов при замене. К сожалению, регулярные выражения тут бессильны"

- Это можно сделать (вопрос о произвордительности - это другой вопрос)
Code (php): скопировать код в буфер обмена
<textarea cols=200 rows=20><?php

$str = '[a]11[b]22[/b][c][c][c]33
[/c][/c][a]44[/a]55[/a]456';
$reg = '#\\[(\\w)\\]([^<>]*(?R)*[^<>]*)\\[/\\1\\]#i';

while(preg_match_all($reg, $str, $arr)) {
  $str = preg_replace($reg, '<\\1>$2</$1>', $str);
  echo "$str\n\n";
}

?></textarea>
[/php]
Back to top
/?R/
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Nov 28, 2008 9:03 pm (спустя 4 минуты; написано за 37 секунд)
   Post subject:
Reply with quote

Пробую еще раз в quote
Quote:
$str = '[a]1122
Code (c): скопировать код в буфер обмена
[c][c]33
[/c][/c][a]44[/a]55[/a]456';
$reg = '#\\[(\\w)\\]([^<>]*(?R)*[^<>]*)\\[/\\1\\]#i';

while(preg_match_all($reg, $str, $arr)) {
  $str = preg_replace($reg, '<\\1>$2</$1>', $str);
  echo "$str\n\n";
}
Back to top
/?R/
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Nov 28, 2008 9:06 pm (спустя 2 минуты; написано за 34 секунды)
   Post subject:
Reply with quote

Прошу удалить передыдущий пост - пробую без форматирования

Код PHP

$str = '[a]1122
Code (c): скопировать код в буфер обмена
[c][c]33
[/c][/c][a]44[/a]55[/a]456';
$reg = '#\\[(\\w)\\]([^<>]*(?R)*[^<>]*)\\[/\\1\\]#i';

while(preg_match_all($reg, $str, $arr)) {
  $str = preg_replace($reg, '<\\1>$2</$1>', $str);
  echo "$str\n\n";
}
Back to top
/?R/
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Nov 28, 2008 9:33 pm (спустя 27 минут; написано за 1 минуту 7 секунд)
   Post subject:
Reply with quote

Обнаружил неточность в своем коде (остались в шаблоне угловые скобки вместо квабратных - поэтому еще надеюсь последний раз)
Code (php): скопировать код в буфер обмена
<?php
echo (www.php.net/echo) '<textarea cols=200 rows=20>';

$str = '[a]11[b]22[/b][g][g][g]33[/g][/g][/g][a]44[/a]55[/a]456';
$reg = '#\\[(\\w)\\]([^\\[\\]]*(?R)*[^\\[\\]]*)\\[/\\1\\]#i';

while(preg_match_all (www.php.net/preg_match_all)($reg, $str, $arr)) {
  $str = preg_replace (www.php.net/preg_replace)($reg, '<\\1>$2</$1>', $str);
  echo (www.php.net/echo) "$str\n\n";
}

echo (www.php.net/echo) '</textarea>';
?>
Back to top
header
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Nov 29, 2008 12:02 am (спустя 2 часа 28 минут; написано за 3 минуты 27 секунд)
   Post subject:
Reply with quote

(2008) с.437

"int Header(string)"

- согласно документации

void header ( string $string [, bool $replace [, int $http_response_code ]] )

с.438

"... обязательно должен осуществляться до любого оператора вывода"

- согласно документации before any actual output is sent (до реальной отправки)

кроме ob_start() - о чем сказано в тексте книги - можно использвать параметр ini output_buffering - и на самом деле приходитмся использовать, так как некоторые хостинги любят вставить до Вашего вывода уже свой output/
Back to top
Кэш
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Nov 29, 2008 12:47 am (спустя 45 минут; написано за 4 минуты 18 секунд)
   Post subject:
Reply with quote

(2008) с.439 Листинг 25.1 lib/nocashe.php

- в листинге приведен растиражированный в сети Интернет код, который не работает во всех случаях, в частности при возврате на страничку при помощи кнопки BACK.
В свое время Сократ сказал, что у мухи 8 лапок и это заблуждение жило в научной среде более ста лет, хотя убедиться в ошибочности этого суждения мог любой.
В ветке форума PHP готовые решения приведен навскидку работающий код, хотя достаточно ограничиться всего двумя закголовками
Code (php): скопировать код в буфер обмена
  header (www.php.net/header)("Cache-Control: no-store, no-cache,  must-revalidate");
  header (www.php.net/header)("Expires: "date (www.php.net/date)("r"));
Back to top
$_SESSION
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Nov 29, 2008 7:41 pm (спустя 18 часов 53 минуты; написано за 3 минуты)
   Post subject:
Reply with quote

(2008) c.512

" ... использовался массив $HTTP_SESSION_VARS. В настоящее время эта переменная тоже поддерживается, но она является синонимом для $_SESSION"

- $HTTP_SESSION_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_SESSION_VARS and $_SESSION are different variables and that PHP handles them as such.

То есть в привычном сиысле слова (для программистов PHP) это не синонимы
Back to top
function
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Nov 30, 2008 10:11 pm (спустя 1 день 2 часа 30 минут; написано за 2 минуты 32 секунды)
   Post subject:
Reply with quote

(2008) c.241

"... определение функции ниже ее вызова работает если в момент вызова функции ее код будет уже оттранслирован"

- одной трансляции мало. Код должен быть в некоторых случаях еще и выполнен (например зависит от условных конструкций). Приведенный код выдаст ошибку и выше и ниже
Code (php): скопировать код в буфер обмена
f(); //

if (isset (www.php.net/isset)($_REQUEST['be-be'])){
  function f(){echo (www.php.net/echo) 7;}
}

f(); //
 
Back to top
Guest






Карма: 388
   поощрить/наказать


PostPosted: Mon Dec 01, 2008 12:07 am (спустя 1 час 55 минут; написано за 9 минут 13 секунд)
   Post subject:
Reply with quote

eval(<?php) wrote:
А такой код не работет (undefined constnt php)
Code (php): скопировать код в буфер обмена
eval (www.php.net/eval)("?>be-be<?php")
Кстати говоря, судя по комментариям в официальной документации PHP (после статьи eval) в 2005 году такой код работал. исправляются...
Back to top
апострофы
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Dec 01, 2008 1:49 am (спустя 1 час 42 минуты; написано за 3 минуты 4 секунды)
   Post subject:
Reply with quote

(2008) с.417

"PHP проявляет чудо сообразительности ... видя что после слыша стоит буква, не входящая ни в один сроковый метасимвол он оставляет все как есть"

- PHP дейстивительно проявляет чудо сообразительности, при работе в двойных кавычках. Но влистинге 24-6 строка взята в одинарные кавычки и действует совсем другое праило
Quote:
Что бы использовать одинарную кавычку внутри строки, как и во многих других языках, ее необходимо предварить символом обратной косой черты (\), т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, вам необходимо продублировать ее. Обратите внимание, что если вы попытаетесь экранировать любой другой символ, обратная косая черта также будет напечатана! Так что, как правило, нет необходимости экранировать саму обратную косую черту.

Замечание: В PHP 3 в данном случае будет выдано сообщ...
Back to top
return by reference
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Dec 01, 2008 7:47 pm (спустя 17 часов 58 минут; написано за 2 минуты 37 секунд)
   Post subject:
Reply with quote

(2008) c. 257

"В новой версии все объекты и так передаются по ссылке"

- явная терминологическая неточность. Объекты могут передаваться и возвращаться как по ссылке так и по значению (как и в 4-ке).
Но значение объектной переменной содержит ссылку на объект. Приведенный код проясняет разницу:
Code (php): скопировать код в буфер обмена
class First{}
class Second{}

function f($obj){return $obj;}
function &s(&$obj){return $obj;}

$a=new First();
$b=f($a);
$b=new Second();
echo (www.php.net/echo) ($a===$b) ? "true": "false"; //false

$b=&s($a);
$b=new Second();
echo (www.php.net/echo) ($a===$b) ? "true": "false"; //true
 
Back to top
/^$/s
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Dec 01, 2008 10:21 pm (спустя 2 часа 33 минуты; написано за 1 минуту 40 секунд)
   Post subject:
Reply with quote

(2008) c.415
"/^$/s" - сопоставимо только с пустой строкой

- это не так сопоставимо с пустой строкой и со строкой "\n"
Для сопоставления пустой строке следует использовать echo preg_match('/^\z/', "\n"); () (модификатор s не нужет)
Back to top
varchar(255)
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Dec 02, 2008 12:58 am (спустя 2 часа 37 минут; написано за 1 минуту 26 секунд)
   Post subject:
Reply with quote

(2008) c.483

"VARCHAR (length) .. где length принадлежит диапазону 1 255"

- Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. (The maximum effective length of a VARCHAR in MySQL 5.0.3 and later is determined by the maximum row size and the character set used. The maximum column length is subject to a row size of 65,532 bytes.)

In contrast to CHAR, VARCHAR values are stored using only as many characters as are needed, plus one byte to record the length (two bytes for columns that are declared with a length longer than 255...
Back to top
autoincrement id
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Dec 02, 2008 1:23 am (спустя 25 минут; написано за 3 минуты 17 секунд)
   Post subject:
Reply with quote

(2008) c. 496

"вновь добавляемые данные уже не получат id только что удаленной строки"

- следует учитывать что счетчики таблиц innodb инициализируются при старте сервера каждый раз по алгоритму select max(id) from table.
Следовательно после останова/пуска сервера удаленные id для таблоиц innodb будут использованы (если удалены максимальные их значения).
Back to top
mysql_qw()
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Dec 02, 2008 9:20 pm (спустя 19 часов 56 минут; написано за 3 минуты 30 секунд)
   Post subject:
Reply with quote

(2008) c. 504

"Почему разработчики PHP не встроили в ядро PHP фукнцию подобную mysql_qw..."

- в модуле mysqli идея placeholder реализована в stmt
Code (php): скопировать код в буфер обмена
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute()
При этом escaping производится автоматически. Это не 1/1 mysql_qw(), но идея та же и функционал хороший.
Back to top
include_path
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Dec 02, 2008 9:46 pm (спустя 25 минут; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

(2008) c. 557
"Она (include_path) содержит несколько ... абсолютных путей"


- Example I.2. Windows include_path

include_path=".;c:\php\includes"
Using a . in the include path allows for relative includes as it means the current directory.
Back to top
Листинг 31-9
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Dec 02, 2008 10:29 pm (спустя 43 минуты; написано за 35 секунд)
   Post subject:
Reply with quote

(2008) с.570

У методов в листинге пропущен модификатор static
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Goto page Previous  1, 2, 3, 4, 5, 6  Next
Page 4 of 6    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML