Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP функции
 
 автор: Unkind™   (13.01.2006 в 22:07)   письмо автору
 
 

У меня несколько вопросов...
Я совсем недавно начал изучение PHP и я не совсем понимаю, чем отличаются некоторые функции. Например:

require_once() и include()...Чем они отличаются?
echo(), links() и print()

Ну это которые сейчас вспомнил...Они отличаются названиями только для того, какое из них нравится программисту? И все?
Или вот почему, скажите, cheops, вы применяете в кодах своих веб приложениях именно !isset для проверки пустоты переменной, а не, скажем, empty? Личное предпочтение?

   
 
 автор: Loki   (13.01.2006 в 22:28)   письмо автору
 
   для: Unkind™   (13.01.2006 в 22:07)
 

require - если при подключение файла происходит сбой, то выплнение скрипта не останавливается, в случае же include - остановка происходит.
_once - тоже самое, но файл включается только однажды, даже если файл подключен несколько раз.

print, в отливае от echo, возвращает true в случае удачного выполнения (если ничего не напутал)
links - это вы сами придумали?:)
isset проверяет описана ли переменная, emtry - описана ли переменная и отлична ли она от нуля.
а вообще все это вы могли прочесть и в справочнике... наверное:)

   
 
 автор: Unkind™   (13.01.2006 в 22:48)   письмо автору
 
   для: 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

   
 
 автор: Киналь   (13.01.2006 в 22:59)   письмо автору
 
   для: Unkind™   (13.01.2006 в 22:48)
 


$a='AAA';
$b='';
echo isset($a); // true
echo empty($b); // true
echo isset($c); // false
echo empty($c); // ошибка

   
 
 автор: Unkind™   (13.01.2006 в 23:02)   письмо автору
 
   для: Киналь   (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...=)

   
 
 автор: Boss   (13.01.2006 в 23:03)   письмо автору
 
   для: Unkind™   (13.01.2006 в 22:48)
 

links это функция на самом деле(PHP5 Практика создания web-сайтов, стр 281), которую ребята из softtime написали....

isset - это функция которая проверяет существует ли переменная(true) или нет(false)
пример:


$a = "Привет! Я Boss";

if(isset($a))
{
echo 'Переменная существует';
}
else
{
echo 'Переменная не существует';
}

   
 
 автор: Unkind™   (13.01.2006 в 23:08)   письмо автору
 
   для: Boss   (13.01.2006 в 23:03)
 

isset - это функция которая проверяет существует ли переменная(true) или нет(false)
пример:

СКОЛЬКО МОЖНО! =) Я ЭТО И БЕЗ ВАС ЗНАЮ! =) ХВАТИТ! =)
links это функция на самом деле
Я и не говорил, что это НЕ функция...=) Я спрашивал, чем эта функция отличается от echo() и print()...А вы мне тут говорите что это на самом деле функция...=) Спасибо...Правда я не знал, что ребята из SoftTime создают собственные функции для PHP...=) гг

   
 
 автор: Boss   (13.01.2006 в 23:20)   письмо автору
 
   для: 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 =)), а для своих приложений с какой то целью... =))

   
 
 автор: Unkind™   (13.01.2006 в 23:22)   письмо автору
 
   для: Boss   (13.01.2006 в 23:20)
 

хех...Я думал эт родная функция...=) Тогда ладно...=)

   
 
 автор: cheops   (13.01.2006 в 23:52)   письмо автору
 
   для: Unkind™   (13.01.2006 в 23:22)
 

Такая функция вводится, чтобы внутри её можно было нарисовать красивую страничку ошибок - чтобы текст ошибки не повисал на белом фоне пред обескураженным посетителем.

   
 
 автор: Boss   (13.01.2006 в 23:56)   письмо автору
 
   для: Unkind™   (13.01.2006 в 22:07)
 

>Или вот почему, скажите, cheops, вы применяете в кодах своих веб приложениях именно
>!isset для проверки пустоты переменной, а не, скажем, empty? Личное предпочтение?

>isset - это функция которая проверяет существует ли переменная(true) или нет(false)
>СКОЛЬКО МОЖНО! =) Я ЭТО И БЕЗ ВАС ЗНАЮ! =) ХВАТИТ! =)

для справки:
isset функция не для проверки пустоты переменной, isset это (см. выше)... а вот empty как раз проверяет "пустоту переменной".

Вывод: isset - проверяет существует ли переменная, а empty проверяем содержимое переменной

   
 
 автор: Unkind™   (14.01.2006 в 00:01)   письмо автору
 
   для: Boss   (13.01.2006 в 23:56)
 

=) Ладно, ладно...=)
Но просто если сделать проверку несуществующей переменной с помошью empty , будет false...Значит, просто граммотнее будет применить !isset для проверки существования переменной, чем empty?

   
 
 автор: Boss   (14.01.2006 в 00:25)   письмо автору
 
   для: Unkind™   (14.01.2006 в 00:01)
 

лучше применить и то и то...
т.е. пример:

<? 
$email 
"";
//Переменная 100% существует
if  (isset($email))
{
    if (!empty(
$email))
        {
        echo 
'переменная не пустая';
        }
        else
        {
        echo 
"пустое значение $email";
        }    
}

?>

   
 
 автор: Киналь   (14.01.2006 в 00:28)   письмо автору
 
   для: 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).

   
 
 автор: Boss   (14.01.2006 в 00:46)   письмо автору
 
   для: Киналь   (14.01.2006 в 00:28)
 

>Не совсем. Если, напрмер, передать переменную из формы такого типа:
Конечно, все зависит от программера, кто как передает значения.. я лишь поверхностно сказал.

   
 
 автор: Киналь   (14.01.2006 в 00:50)   письмо автору
 
   для: Boss   (14.01.2006 в 00:46)
 

=) "Не совсем" относилось не к вашему посту, а предыдущему.

   
 
 автор: Саня   (14.01.2006 в 01:18)   письмо автору
 
   для: 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(), разница лишь в реагировании на ошибки.

   
 
 автор: Unkind™   (14.01.2006 в 14:37)   письмо автору
 
   для: Саня   (14.01.2006 в 01:18)
 

>http://php.rinet.ru/manual/ru/function.echo.php
Неплохой сайтик, спасибо...=)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования