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

Форум PHP

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

 

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

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

тема: Своя функция с неопределённым количеством параметров
 
 автор: ddhvvn   (09.01.2007 в 12:34)   письмо автору
 
 

Вот возник такой вопрос. Как создать функцию с необязательными параметрами?

Как пример, описание функции

  array scandir ( string directory [, integer sorting_order] )

   
 
 автор: malish   (09.01.2007 в 12:38)   письмо автору
 
   для: ddhvvn   (09.01.2007 в 12:34)
 

можно использовать значения по умолчанию.


function test($x, $y=NULL);

test(4);


тут если не указывать второй параметр он будет всегда NULL.

А вообще вопрос интересный, как например написать на ПХП подобие функции printf на C. чтоб количество параметров не было определено изначально?

   
 
 автор: ddhvvn   (09.01.2007 в 12:43)   письмо автору
 
   для: malish   (09.01.2007 в 12:38)
 

>А вообще вопрос интересный...

Вот-вот :)). Подождем Хеопса! :)

   
 
 автор: Trianon   (09.01.2007 в 13:04)   письмо автору
 
   для: malish   (09.01.2007 в 12:38)
 

<?
function test()
{
   
$n func_num_args();
   for(
$i 0$i $n$i++)
      echo 
"Arg $i: ".func_get_arg($i)."<br>";
}
test(1,3,5);
?>

   
 
 автор: Alph[p]a   (09.01.2007 в 13:15)   письмо автору
 
   для: Trianon   (09.01.2007 в 13:04)
 

Даже не знал что так можно...спасибо что дал мыслю))) буду набираться опыта...вопрос мне показался очень интересный!

   
 
 автор: ddhvvn   (09.01.2007 в 13:45)   письмо автору
 
   для: Alph[p]a   (09.01.2007 в 13:15)
 

Ну как получать и задавать неизвестное кол-во параметров я понял. Но мой первый вопрос остается в силе (про array scandir ( string directory [, integer sorting_order]))

   
 
 автор: NIK   (09.01.2007 в 14:02)   письмо автору
 
   для: ddhvvn   (09.01.2007 в 13:45)
 

а предложенный вариант с function test($x, $y=NULL); почему не подходит? Кто знает, возможно в PHP это так и делается :)

   
 
 автор: Sfinks   (09.01.2007 в 14:15)   письмо автору
 
   для: NIK   (09.01.2007 в 14:02)
 

Так это и делается.
<?php

  
function vyvod $text=false ){
    if (
$text) echo $text;
  }

  
vyvod("text1");
  
vyvod();
  
vyvod("text2");

?>
результатом будет строка text1text2.

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

   
 
 автор: cheops   (09.01.2007 в 14:11)   письмо автору
 
   для: ddhvvn   (09.01.2007 в 13:45)
 

Необязательные параметры объявляются так, как указал malish.

   
 
 автор: ddhvvn   (09.01.2007 в 14:18)   письмо автору
 
   для: cheops   (09.01.2007 в 14:11)
 

Все ясно. Спасибо.

   
Rambler's Top100
вверх

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