Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция
Форумы портала PHP.SU » » Вопросы новичков » Функция

Страниц (1): [1]
 

1. Bear13 - 06 Декабря, 2011 - 15:36:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function getPeriod($m,$n){
  2. (in_array($m,array('12','01','02')))?$diff[$n]=1:'';
  3. (in_array($m,array('03','04','05')))?$diff[$n]=2:'';
  4. (in_array($m,array('06','07','08')))?$diff[$n]=3:'';
  5. (in_array($m,array('09','10','11')))?$diff[$n]=4:'';
  6. return $diff[$n];
  7. }
  8. echo $diff[1]=getPeriod($month[1],1);
  9. echo $diff[2]=getPeriod($month[2],2);


Функция проверяет входящее значение $month[1] или $month[2] и после этого присваевает нужное значение переменной $diff[$n].

Как правильно вывести переменную из функции?
2. EuGen - 06 Декабря, 2011 - 15:43:16 - перейти к сообщению
Задача в том, чтобы найти разницу между двумя датами? Почитайте про функции работы с датами.
3. Panoptik - 06 Декабря, 2011 - 15:45:21 - перейти к сообщению
чесно говоря немного бредовая функция. если я правильно понял, то нужно найти квартал года по месяцу и это можно сделать проще
PHP:
скопировать код в буфер обмена
  1.  
  2. function getPeriod($m){
  3. (in_array($m,array('12','01','02')))?$n=1:'';
  4. (in_array($m,array('03','04','05')))?$n=2:'';
  5. (in_array($m,array('06','07','08')))?$n=3:'';
  6. (in_array($m,array('09','10','11')))?$n=4:'';
  7. return $n;
  8. }
  9.  
  10. echo $diff[1]=getPeriod($month[1]);
  11. echo $diff[2]=getPeriod($month[2]);
  12.  


код не идеальный, просто сходу выкинул лишнего ненмого
4. EuGen - 06 Декабря, 2011 - 15:48:38 - перейти к сообщению
Если так, то чем плохо

?
5. Bear13 - 06 Декабря, 2011 - 15:51:09 - перейти к сообщению
Panoptik пишет:
чесно говоря немного бредовая функция. если я правильно понял, то нужно найти квартал года по месяцу и это можно сделать проще


Мне просто нужно оптимизировать вот этот кусок кода:
PHP:
скопировать код в буфер обмена
  1. (in_array($month[1],array('12','01','02')))?$diff_now=1:'';
  2. (in_array($month[1],array('03','04','05')))?$diff_now=2:'';
  3. (in_array($month[1],array('06','07','08')))?$diff_now=3:'';
  4. (in_array($month[1],array('09','10','11')))?$diff_now=4:'';
  5.  
  6. (in_array($month[2],array('12','01','02')))?$diff_file=1:'';
  7. (in_array($month[2],array('03','04','05')))?$diff_file=2:'';
  8. (in_array($month[2],array('06','07','08')))?$diff_file=3:'';
  9. (in_array($month[2],array('09','10','11')))?$diff_file=4:'';
6. Microteam - 06 Декабря, 2011 - 15:56:37 - перейти к сообщению
если я вас правильно понял, то например несколько переменных можно вывести так.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function foo($text, &$arg, &$argx)
  4. {
  5. $arg = strtoupper($text);
  6. $argx = strtolower($text);
  7. return;
  8. }
  9.  
  10. //Если вызвать функцию
  11.  
  12. foo("это НаШ текст",$t,$x)
  13.  
  14. // то переменной $t будет присвоен тот же текст только в верхнем регистре.
  15. // т.е ЭТО НАШ ТЕКСТ
  16. // а в переменной $x ,будет текст в нижнем регистре)))
  17.  


Нууу если я вас правильно понял)))
7. Panoptik - 06 Декабря, 2011 - 16:02:50 - перейти к сообщению
Цитата:

Нууу если я вас правильно понял)))

Это здается, не похоже, на то)
Цитата:
Мне просто нужно оптимизировать вот этот кусок кода:

ваша функция близка к истине, но второй параметр там лишний в данном случае

 

Powered by ExBB FM 1.0 RC1