Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Referencja
Forum PHP.pl > Forum > Przedszkole
Krzychur
Witam!

Przyglądam się strukturze funkcji preg_match():

mixed preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )

Jak widać tablica &matches jest niewymaganym argumentem, ale jeżeli wpiszemy tam nazwę dowolnej zmiennej, jej wartością będzie przekazana przez referencje właśnie ta tablica z atomami.

Zainteresowałem się tym i sam stworzyłem z rozpędu kilka funkcji np.:
Kod
<?php
function count_sql($table,$parameters = FALSE,&$count = FALSE) {
       $count = mysql_num_rows(mysql_query('SELECT 1 FROM `'.PREFIX.$table.'` '.$parameters));
    return $count;
}
?>
Działało, tak jak się spodziewałem. Jeżeli wysłałem to na zdalny serwer (netlook.pl), paser wyświetlił, że nie spodziewał się tego równasię po &$count, tylko od razu nawiasika.

Patrzyłem rozdział XXI - http://www.php.net/manual/pl/language.refe...erences.whatare i nie znalazłem nigdzie takiego przykładu, który prezentowałby taki argument jako niewymagany. Więc, czy jest możliwe zrobienie funkcji przekazującej coś przez referencje z argumentem niewymaganym, jaka to możliwość? A jeżeli nie ma, to czemu u mnie, na raczej domyślnych (nie na żadnym krasnalu itp) ustawieniach php 5 działa?
dr_bonzo
Nie mozesz przekazywac przez referencje stalej FALSE, referencje mozesz robic tylko do zmiennych.
Krzychur
Dobrze, to możesz powiedzieć mi, czy i jak mogę zrobić, aby taki argument nie był wymagany.

I jeszcze dlaczego na mojej maszynie nie pojawia sie zaden błąd?

edycja
http://www.webinside.pl/php/artykuly/137 na samym dole
wersja na zdalnym serwerze: 4.3.9 lub .8 winksmiley.jpg u mnie 5.0.1.

Pytanie: czy na wcześniejszych wersjach mogę (dosłownie nie, ale jakoś inaczej) zrobić tak jak podano w artykule linijka function referencja(&$ref = FALSE) { działała?
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.