Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Referencja, jako argument niewymagany
Krzychur
post 8.06.2005, 06:29:41
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Krzychur 8.06.2005, 13:55:30


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
dr_bonzo
post 8.06.2005, 10:04:51
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Nie mozesz przekazywac przez referencje stalej FALSE, referencje mozesz robic tylko do zmiennych.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Krzychur
post 8.06.2005, 13:56:44
Post #3





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Krzychur 9.06.2005, 16:32:57


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:45