Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Проблема с выводом функции

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 21 Апрель 2009 - 18:04

Когда создавал тему, то была ошибка в функциях func_num_args() и func_get_arg(). Но с функциями вроде разобрался, но почему-то не выводит так как в книге пишет =(
Должно быть так
Изображение
А у меня
Изображение

Вот сам код:
<?php
function print_str()
{
echo "<table border=1 width=100%>";
echo "<tr><td background=blue><font color=white>Номер</font></td>";
echo "<td background=blue><font color=white>Параметр</font></td>";
for ($i=0; $i<func_num_args(); $i++)
	{
	echo "<tr><td>$i</td><td>".func_get_arg($i)."</td></tr>";
	}
	echo "</table>";
}
print_str ("Первый", "Второй", "Третий", "Четвертый");
?>

Если не сложно, то обясните ещё раз вкратце, по простому, для чего нужно и как действуют func_num_arg() & func_get_arg() B)

 

 

  • 0


#2 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 22 Апрель 2009 - 00:59

func_num_args


(PHP 4)

func_num_args - возвращает количество аргументов, переданных функции.

Описание

int func_num_args (void)
Возвращает количество аргументов, переданных в текущую пользовательскую функцию. func_num_args() будет генерировать предупреждение, если вызвана вне пользовательской функции

<?php
function foo() {
$numargs = func_num_args();
echo "Number of arguments: $numargs\n";
}

foo (1, 2, 3); // печатает 'Number of arguments: 3'
?>


func_num_args() может использоваться вместе с func_get_arg() и func_get_args(), что позволит пользовательским функциям принимать списки (аргументов) переменного размера


func_get_arg

(PHP 4)

func_get_arg - возвращает элемент из списка аргументов

Описание
mixed func_get_arg (int arg_num)

Возвращает аргумент, который находится по смещению arg_num в списке аргументов определённой пользователем функции. Аргументы функции считаются, начиная с 0.
func_get_arg() генерирует предупреждение, если вызвана вне определения функции.

Если arg_num больше количества реально переданных аргументов, будет сгенерировано предупреждение, и функция func_get_arg() возвратит FALSE


<?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";
}
}

foo (1, 2, 3);
?>


func_get_arg() может использоваться в сочетании с func_num_args() и func_get_args(), что позволит пользовательским функциям принимать списки (аргументов) переменной длины.

Примечание: эта функция была добавлена в PHP 4.


Получено с сайта www.php.net.ua
  • 0

#3 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 22 Апрель 2009 - 15:52

Конечно большое спасибо, но у меня в книге такое тоже написано, хотелось бы "своими словами". И моя проблема так и не решена :D
  • 0


#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 22 Апрель 2009 - 21:18

Banderas, твоя проблема не в PHP а в CSS. Попробуй так:
<?php
function print_str()
{
echo "<table border=1 width=100%>";
echo "<tr><td style='background: #0000FF; color: #FFF;'>Номер</td>";
echo "<td style='background: #0000FF; color: #FFF;'>Параметр</td>";
for ($i=0; $i<func_num_args(); $i++)
	{
	echo "<tr><td>$i</td><td>".func_get_arg($i)."</td></tr>";
	}
	echo "</table>";
}
print_str ("Первый", "Второй", "Третий", "Четвертый");
?>

По поводу функций func_num_args() и func_get_arg()
Практическое их использование не респектабельно. Тебе точно нужно знать сколько и каких параметров передал пользователь функции. А то передаст что-то левое, а ты и обработаешь. А так... данные функции служат для обхода параметров, переданных в функцию если мы не знаем заведомо сколько их и какие они.

Как я уже сказал, их применение ограничивается выводом какого-то списка, но никак не написанием скрипта, который будет использовать человек, никаким образом не относящийся к разработчикам. Тогда не будет единой связи между параметрами и действиями, выполняющихся в данной функции.
  • 0

#5 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 22 Апрель 2009 - 21:34

Заработало :D Я про одинарные кавычки знал, просто где-то слышал что можно не ставить, но это наверно не в этом случае... Спасибо огромное, можно двигаться дальше ;)
  • 0


#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 22 Апрель 2009 - 22:55

Banderas, сравни написанные записи!
Я использовал style, а у тебя параметр, который никак не подходит под цвет фона...
  • 0


Оформление форума – IPBSkins.ru