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

12
L
На сайте с 22.06.2009
Offline
20
1420

Добрый день.

Проблема в следующем, есть определенная функция.

она постоянно используется в различных местах скрипта.

ну к примеру, что на ум приходит:


function summa($a,$b) {
$summa = $a+$b;
return $summa;
}

Как уже сказал, функция постоянно используется.

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

И мы идем в файл, где хранится эта функция, изменяем function summa($a,$b,$c) {

А что делать с другими местами, где эта функция использовалась, ведь там теперь ошибки?

Может быть как-то по-другому такие вещи оформляются?

Надеюсь вопрос понятен

Вакансия "Оптимизатора". З/П от 50000 рублей (http://www.superjob.ru/)
T
На сайте с 13.01.2009
Offline
50
#1

Например так


function summa ($a, $b, $c = '') {

//код

}
DyaDya
На сайте с 11.04.2007
Offline
147
#2

1. В вашем случае можно написать:

function summa($a,$b,$c=0) {

тогда третий параметр будет по умолчанию 0, и его можно в вызове функции не указывать.

2. Можно передавать в функцию один параметр, массив, например. Тогда при добавлении входных параметров, будет просто больше элементов в массиве, но менять вызовы не придётся.

3. Нужно за ранее продумывать как будет использоваться функция и делать наиболее оптимальное решение.

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
B
На сайте с 05.05.2009
Offline
11
#3

Можно еще так:


function myFunction ($id, $cid = FALSE)
{
if (FALSE != $cid)
{
//Если есть такая переменная
}
}
L
На сайте с 22.06.2009
Offline
20
#4

Спасибо....

Просто, но все равно как-то неудобненько

FeoOne
На сайте с 27.12.2008
Offline
32
#5
B3nder:
if (FALSE != $cid)

Быдлокодер?

tulluk
На сайте с 17.11.2008
Offline
10
#6

передавать массив =)

уроки по веб-программированию (http://webypoku.ru/)
B
На сайте с 05.05.2009
Offline
11
#7

FeoOne, обоснуй, чем плох мой вариант?

dkameleon
На сайте с 09.12.2005
Offline
386
#8

так круче: http://www.php.net/manual/en/function.func-get-args.php

<?php
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}

foo(1, 2, 3);
?>
Дизайн интерьера (http://balabukha.com/)
xpert13
На сайте с 15.09.2008
Offline
127
#9
B3nder:
FeoOne, обоснуй, чем плох мой вариант?

if (!$cid)
B
На сайте с 05.05.2009
Offline
11
#10

xpert13. А ты пробывал проверять, то что написал???


<?
function myFunction ($id, $cid = FALSE)
{
if (FALSE != $cid)
{
echo "aaa";
}
}

$id = "myId";
myFunction($id);
?>

Ничего невыводится.

А теперь твой вариант:


<?
function myFunction ($id, $cid = FALSE)
{
if (!$cid)
{
echo "aaa";
}
}

$id = "myId";
myFunction($id);
?>

Выведет ааа

12

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