Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja z argumentem, ale niekoniecznie?
Forum PHP.pl > Forum > PHP
ins@ne
Da sie jakos napisac funkcje, ktora moze miec podany parametr, ale nie musi? Tzn. jesli nie przekaze jej sie parametru to wykona dodatkowa linijke kodu i sobie ten parametr sama pobierze z innej zmiennej? Np. cos takiego:
[php:1:ced4bc36cd]<?php
function WykazStron($NazwaStrony)
{
switch($NazwaStrony)
{
case 'index.php' : $TytulStrony = 'Strona główna'; break;
case 'about.php' : $TytulStrony = 'O autorze'; break;
}
return $TytulStrony;
}
?>[/php:1:ced4bc36cd]
i jesli teraz nie podamy przy wywolaniu funkcji parametru to ona sobie pobierze ten parametr z innej funkcji czy zmiennej np.:
[php:1:ced4bc36cd]<?php
function WykazStron($NazwaStrony)
{
if ($NazwaStrony=='')
{
$NazwaStrony = PobierzNazweStrony();
}
switch($NazwaStrony)
{
case 'index.php' : $TytulStrony = 'Strona główna'; break;
case 'about.php' : $TytulStrony = 'O autorze'; break;
}
return $TytulStrony;
}
?>[/php:1:ced4bc36cd]
To co ja napisalem na pewno nie dziala bo sprawdzilem sad.gif. Da sie to jakos rozwiazac?
cahe
[php:1:79c36702d3]<?php
function something($zmienna = 'domyslna wartość')
{
wazup();
}

?>[/php:1:79c36702d3]

Teraz nie trzeba podawać zmiennej, nie wywali błędu. Możesz tez w samej funkcji sprawdzać czy zmienna została dana i jeśli nie dać jej jakąś wartość.
kurtz
Hej

Argumenty mozna zczytywac niebezposrednio a przez specjalne funkcje - [manual:e0b4236923]fun_get_arg()[/manual:e0b4236923] i [manual:e0b4236923]fun_get_args()[/manual:e0b4236923]. Przydaje sie np gdy nie wiemy ile argumentow ma przyjac funkcja albo chcemy roznie na nie reagowac.

Zapraszam:
http://www.php.net/manual/en/function.func...nc-get-args.php
oraz http://www.php.net/manual/pl/functions.arguments.php (ogolnie o argumntach w funkcjach)


Pozdrwiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.