Как правильно использовать функции в PHP?

12
alexandr_nv
На сайте с 23.04.2009
Offline
39
#11

if (FALSE != $cid)

2 FeoOne & xpert13

Вроде, это считается правилом хорошего тона - писать вначале значение, а потом переменную. Т.к., если допустить ошибку и написать $cid = FALSE - то будешь потом долго искать, где в коде ошибка - а программа будет работать, но неправильно. А если FALSE = $cid - то сразу будет написано, где ошибка.

xpert13:
if (!$cid)

И этот код выполнится в 2-ух случаях, если:

$cid == TRUE (что и требуется),

$cid == null (что ОШИБОЧНО)

Чувствуешь разницу ?

Сами вы быдлокодеры :)

xpert13
На сайте с 15.09.2008
Offline
127
#12
alexandr_nv:

Сами вы быдлокодеры :)

Я не говорил что он быдлокодер, а просто дал ответ на его вопрос, со своей точки зрения.

З.Ы. Извиняюсь, ошибался.

FeoOne
На сайте с 27.12.2008
Offline
32
#13

alexandr_nv, в данном случае можно просто написать if($cid), так как $cid определена, и уж точно не ошибёшься, == или = ;)

alexandr_nv:
Вроде, это считается правилом хорошего тона

в пхп да, но не все языки воспринимают такую конструкцию, поэтому эта строчка и бросилась мне в глаза :)

alexandr_nv:
И этот код выполнится в 2-ух случаях, если:
$cid == TRUE (что и требуется),
$cid == null (что ОШИБОЧНО)
Чувствуешь разницу ?

По мне, лучше уж написать if(isset($cid) && $cid) :)

dkameleon
На сайте с 09.12.2005
Offline
386
#14
FeoOne:
По мне, лучше уж написать if(isset($cid) && $cid)

	$cid = 0;
if(isset($cid) && $cid) { var_dump($cid); }

$cid = 1;
if(isset($cid) && $cid) { var_dump($cid); }

$cid = '';
if(isset($cid) && $cid) { var_dump($cid); }

:)

или ноль передавать в качестве параметра нельзя?

А если очень хочется? Чем ноль не параметр? Или пустая строка, например. ;)

Дизайн интерьера (http://balabukha.com/)
D
На сайте с 16.09.2008
Offline
7
#15

Похапе развивает в людях склонность к рефлексии...

Старый и надежный способ отсеивать дефолтовые значения аргументов


function myFunction ($id, $cid = FALSE)
{
if (FALSE !== $cid)
{
...
DeveloperRu
На сайте с 27.02.2009
Offline
72
#16

вообще, надо правильно планировать использование функции

а если вдруг придется добавить входящую переменную - то ставишь значение по умолчанию и переписываешь логику функции

это никак не влияет на остальной код

Ответы на вопросы (http://telenok.com)
[Удален]
#17

топик - ржака. быдлокодеры обсуждают свой быдлокод ...

[Удален]
#18
liex:
Но вдруг, в результате работы понимается, что в функцию необходимо передать еще один параметр, т.е. теперь функция должна вызываться ' echo summa($a,$b,$c);

Это будет уже другая функция. Вопрос исчерпан.

sowich
На сайте с 11.06.2007
Offline
26
#19

xpert13 корректно работоспособно тока при

error_reporting(7);

про empty все забыли?

if(!empty($cid)){...}

по сабжу ТС читай про область видимости переменных, про global и static в частности

Мой блог (http://sowich.info) Пишу скрипты на php, perl - велком!
dkameleon
На сайте с 09.12.2005
Offline
386
#20
sowich:
про empty все забыли?

вы хоть раз документацию открывали? :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий