|
|
|
| У меня несколько вопросов...
Я совсем недавно начал изучение PHP и я не совсем понимаю, чем отличаются некоторые функции. Например:
require_once() и include()...Чем они отличаются?
echo(), links() и print()
|
Ну это которые сейчас вспомнил...Они отличаются названиями только для того, какое из них нравится программисту? И все?
Или вот почему, скажите, cheops, вы применяете в кодах своих веб приложениях именно !isset для проверки пустоты переменной, а не, скажем, empty? Личное предпочтение? | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 22:07)
| | require - если при подключение файла происходит сбой, то выплнение скрипта не останавливается, в случае же include - остановка происходит.
_once - тоже самое, но файл включается только однажды, даже если файл подключен несколько раз.
print, в отливае от echo, возвращает true в случае удачного выполнения (если ничего не напутал)
links - это вы сами придумали?:)
isset проверяет описана ли переменная, emtry - описана ли переменная и отлична ли она от нуля.
а вообще все это вы могли прочесть и в справочнике... наверное:) | |
|
|
|
|
|
|
|
для: Loki
(13.01.2006 в 22:28)
| | links - это вы сами придумали?:)
Нет, не сам, мне помогали...=)
Вот кусок кода из файла addpart.php, работающий на этом форуме =) :
// Проверяем на соответствие переменные
if(empty($name)) links($forum, "Недопустимое имя раздела");
if(empty($rule)) links($forum, "Недопустимое правило форума");
if(empty($logo)) links($forum, "Недопустимое краткое описание раздела");
if(empty($pos)) links($forum, "Недопустимая позиция");
|
isset проверяет описана ли переменная, emtry - описана ли переменная и отлична ли она от нуля
Это я знаю...У меня было написано "!isset"...Ну тут-то понятно, в принципе...Просто почему именно так, а не иначе...=)
P.S. empty...=) а не emtry | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 22:48)
| |
$a='AAA';
$b='';
echo isset($a); // true
echo empty($b); // true
echo isset($c); // false
echo empty($c); // ошибка
|
| |
|
|
|
|
|
|
|
для: Киналь
(13.01.2006 в 22:59)
| | >$a='AAA';
>$b='';
>echo isset($a); // true
>echo empty($b); // true
>echo isset($c); // false
>echo empty($c); // ошибка
Спасибо, конечно, но это что, мне? =) Я это понимаю...Я же говорил немного про другое...Ай ладно...Проехали...Забудте про isset и empty...=) | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 22:48)
| | links это функция на самом деле(PHP5 Практика создания web-сайтов, стр 281), которую ребята из softtime написали....
isset - это функция которая проверяет существует ли переменная(true) или нет(false)
пример:
$a = "Привет! Я Boss";
if(isset($a))
{
echo 'Переменная существует';
}
else
{
echo 'Переменная не существует';
}
|
| |
|
|
|
|
|
|
|
для: Boss
(13.01.2006 в 23:03)
| | isset - это функция которая проверяет существует ли переменная(true) или нет(false)
пример:
СКОЛЬКО МОЖНО! =) Я ЭТО И БЕЗ ВАС ЗНАЮ! =) ХВАТИТ! =)
links это функция на самом деле
Я и не говорил, что это НЕ функция...=) Я спрашивал, чем эта функция отличается от echo() и print()...А вы мне тут говорите что это на самом деле функция...=) Спасибо...Правда я не знал, что ребята из SoftTime создают собственные функции для PHP...=) гг | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 23:08)
| | >Я и не говорил, что это НЕ функция...=) Я спрашивал, чем эта
>функция отличается от echo() и print()...
А ты файл в котором находится код:
if(empty($name)) links($forum, "Недопустимое имя раздела");
if(empty($rule)) links($forum, "Недопустимое правило форума");
if(empty($logo)) links($forum, "Недопустимое краткое описание раздела");
if(empty($pos)) links($forum, "Недопустимая позиция");
|
немного полистай, и увидиш примерно такое:
function links($page, $msg)
{
.....
echo $msg;
.....
}
Посмотри код и подумай, одинаково ли назначение функции echo и links
>А вы мне тут
>говорите что это на самом деле функция...=)
Я писал:
"это функция на самом деле(PHP5 Практика создания web-сайтов, стр 281), которую ребята из softtime написали"
Т.е. я знал что вы знаете что это функция, я лишь дополнил мысль что это функция написанная ребятами из софттайм....
>я не знал, что ребята из SoftTime создают собственные
>функции для PHP...=) гг
=)) УУУ Крута!!! Пишут собственные функции.... абалдеть =)))!!!
Все пишут функции только не для PHP =)), а для своих приложений с какой то целью... =)) | |
|
|
|
|
|
|
|
для: Boss
(13.01.2006 в 23:20)
| | хех...Я думал эт родная функция...=) Тогда ладно...=) | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 23:22)
| | Такая функция вводится, чтобы внутри её можно было нарисовать красивую страничку ошибок - чтобы текст ошибки не повисал на белом фоне пред обескураженным посетителем. | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 22:07)
| | >Или вот почему, скажите, cheops, вы применяете в кодах своих веб приложениях именно
>!isset для проверки пустоты переменной, а не, скажем, empty? Личное предпочтение?
>isset - это функция которая проверяет существует ли переменная(true) или нет(false)
>СКОЛЬКО МОЖНО! =) Я ЭТО И БЕЗ ВАС ЗНАЮ! =) ХВАТИТ! =)
для справки:
isset функция не для проверки пустоты переменной, isset это (см. выше)... а вот empty как раз проверяет "пустоту переменной".
Вывод: isset - проверяет существует ли переменная, а empty проверяем содержимое переменной | |
|
|
|
|
|
|
|
для: Boss
(13.01.2006 в 23:56)
| | =) Ладно, ладно...=)
Но просто если сделать проверку несуществующей переменной с помошью empty , будет false...Значит, просто граммотнее будет применить !isset для проверки существования переменной, чем empty? | |
|
|
|
|
|
|
|
для: Unkind™
(14.01.2006 в 00:01)
| | лучше применить и то и то...
т.е. пример:
<?
$email = "";
//Переменная 100% существует
if (isset($email))
{
if (!empty($email))
{
echo 'переменная не пустая';
}
else
{
echo "пустое значение $email";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Unkind™
(14.01.2006 в 00:01)
| | Не совсем. Если, напрмер, передать переменную из формы такого типа:
<input type=text name='post_var' value=''>
|
то isSet($_POST['post_var']) вернет true независимо от того, ввел что-то пользователь или нет, а empty($_POST['post_var']) вернет true только в случае заполненности поля. То же касается и пустых ячеек в БД; можно и еще примеры придумать, но смысл в том, что в одном случае (isset) проверяется существование переменной (была ли выделена под нее часть оперативной памяти), а в другом (empty) - ее содержимое (при этом существование предполагается). Empty() несуществующей переменной вызовет ошибку (точнее, Notice). | |
|
|
|
|
|
|
|
для: Киналь
(14.01.2006 в 00:28)
| | >Не совсем. Если, напрмер, передать переменную из формы такого типа:
Конечно, все зависит от программера, кто как передает значения.. я лишь поверхностно сказал. | |
|
|
|
|
|
|
|
для: Boss
(14.01.2006 в 00:46)
| | =) "Не совсем" относилось не к вашему посту, а предыдущему. | |
|
|
|
|
|
|
|
для: Unkind™
(13.01.2006 в 22:07)
| | "Различия между print() и echo() рассматриваются в этой статье: http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40"
Взято из: http://php.rinet.ru/manual/ru/function.echo.php
"The two constructs are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error."
Перевожу:
При ошибке подключения файла, include() выводит предупреждение, тогда как require() вызовет фатальную ошибку. А так - функции идентичны.
http://php.rinet.ru/manual/ru/function.include.php
Про "_once" уже рассказали. Ну я добавлю:
"...with the only difference being that if the code from a file has already been included, it will not be included again."
Различия между include() и include_once() сводятся к тому, что при использовании include_once() код не будет включён в документ ещё раз, если он уже был где-то подключён.
http://php.rinet.ru/manual/ru/function.include-once.php
Функция require_once() - аналогична include_once(), разница лишь в реагировании на ошибки. | |
|
|
|
|