Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Return в собственной функции
Новая тема
Ответить
цитата
01/11/14 в 19:52
Lexikon
написал функцию, отдаю ей определенные значения, а она создает или перезаписывает файл согласно данным.
Возник вопрос, функция должна, что то отдавать основному скрипту, который к ней обращается или это не требуется?
грубый пример
function myFile($data, $fileName){
file_put_contents($fileName, $data);
}
вроде как функция отработала, но х.з.
как правильно поступить?
Спасибо!
цитата
01/11/14 в 20:15
ibiz
можно так:
Код:
function myFile($data, $fileName){
return file_put_contents($fileName, $data);
}
if(myFile($data, $fileName)!==false) {it's ok!}
else {bad}
цитата
01/11/14 в 20:17
Stek
Если результат работы функции тебя не интересует, то и можно ничего не отдавать. Т.е. смысла нет выполнять операцию, которая не требуется. Ну разве для красоты и на будущее "а вдруг когда понадобиться".
цитата
01/11/14 в 20:17
ibiz
аа, ну и вопрос не верный: "функция должна, что то отдавать основному скрипту", надо по-другому - "скрипт не продолжит выполняться до тех пор, пока не отработает функция"
цитата
01/11/14 в 21:08
ivango
Функция должна возвращать значение... на то она и функция.
В твоем случае это, к примеру, может быть 1 если всё удалось, или 0 - если что-то пошло не так... или, как ibiz нписал (то ж самое, в принципе).
Т.е. нельзя сказать, что ты написал неправильно... но не красиво, и не по понятиям
цитата
01/11/14 в 21:19
ibiz
ivango писал:
Функция должна возвращать значение... на то она и функция.
В твоем случае это, к примеру, может быть 1 если всё удалось, или 0 - если что-то пошло не так... или, как ibiz нписал (то ж самое, в принципе).
Т.е. нельзя сказать, что ты написал неправильно... но не красиво, и не по понятиям
только надо внимательнее смотреть и знать, что функция file_put_contents возвращает, например: <? echo @file_put_contents("test.txt","");?> вернет 0, без ошибок, а эта <? echo @file_put_contents("test.txt","12");?> уже вернет 2 и тоже без ошибок
цитата
01/11/14 в 21:34
Lexikon
т.е. по ходу функции, если она отработала до конца, она должна выдать что-то основному скрипту через return
Типа, я всё сделала, всё ок или была ошибка и как бы продолжение дальнейших действий не целесообразно.
Т.е. TRUE - это всё отлично
и FALSE - был косяк.
Тогда такой вопрос, как правильно сделать запись чтоб функция отдавала через return основному скрипту либо TRUE либо FALSE.
return TRUE; или return bool(TRUE);
или как то иначе?
цитата
01/11/14 в 21:39
Lexikon
тем самым возвращая в основной скрипт true или false мы можем убедиться стоит ли продолжать работу дальше или остановиться.
цитата
01/11/14 в 21:47
ibiz
Lexikon писал:
Тогда такой вопрос, как правильно сделать запись чтоб функция отдавала через return основному скрипту либо TRUE либо FALSE.
вот же:
Код:
function myFile($data, $fileName){
return file_put_contents($fileName, $data);
}
//если функция отработала без ошибок, то ок
if(myFile($data, $fileName)!==false) {it's ok!}
else {bad}
TRUE она не возвращает, а возвращает кол-во записанных в файл символов или FALSE при ощибке
цитата
01/11/14 в 22:14
Дартаньян
зачем выносить это все в отдельную функцию если это можно задать в аргументе if?
цитата
02/11/14 в 07:40
Lexikon
ibiz писал:
вот же:
Код:
function myFile($data, $fileName){
return file_put_contents($fileName, $data);
}
//если функция отработала без ошибок, то ок
if(myFile($data, $fileName)!==false) {it's ok!}
else {bad}
TRUE она не возвращает, а возвращает кол-во записанных в файл символов или FALSE при ощибке
меня просто смутил тот момент, что в данном примере тело функции в одну строку и как раз return и возвращает эту одну строку, а если строк много.
Есть еще такой момент:
<?php
$menuObject = "рутекст";
echo "<i><a href=\"./page/?subcat=".urlencode($menuObject)."\">".$menuObject."</a></i><br />";
?>
Почему если это вывожу на экран, "рутекст" кодируется, если навести курсор на саму ссылку, то там "рутекст" не кодирован и соответственно когда кликаю по такой ссылке, параметр соответственно передается тоже не кодированым.
цитата
02/11/14 в 08:01
SAV
Lexikon писал:
Возник вопрос, функция должна, что то отдавать основному скрипту, который к ней обращается или это не требуется?
не требуется
http://php.net/manual/ru/functions.returning-values.php
цитата
02/11/14 в 08:47
ibiz
Lexikon писал:
Есть еще такой момент:
Код:
<?php
$menuObject = "рутекст";
echo "<i><a href=\"./page/?subcat=".urlencode($menuObject)."\">".$menuObject."</a></i><br />";
?>
Почему если это вывожу на экран, "рутекст" кодируется, если навести курсор на саму ссылку, то там "рутекст" не кодирован и соответственно когда кликаю по такой ссылке, параметр соответственно передается тоже не кодированым.
с рутекстом надо проверять кодировки, лучше если это везде будет UTF-8, как стандарт, в том числе весь текст в исходнике
цитата
02/11/14 в 18:08
Lexikon
так в том то и дело, что везде UTF-8.
Х.з. в чем проблема.
цитата
02/11/14 в 18:30
Stek
Lexikon писал:
Почему если это вывожу на экран, "рутекст" кодируется, если навести курсор на саму ссылку, то там "рутекст" не кодирован и соответственно когда кликаю по такой ссылке, параметр соответственно передается тоже не кодированым.
Имхо это от браузеров зависит уже.
цитата
03/11/14 в 10:53
freeek
Код:
function myFile($data, $fileName) {
return file_put_contents($fileName, $data) !== FALSE;
}
Новая тема
Ответить
Эта страница в полной версии