Functie maken.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Matthijs Vos

Matthijs Vos

17/12/2012 18:32:05
Quote Anchor link
Hallo,

Ik heb een herhaalend stukje code binnen een functie gehangen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
function tweeting(){
    $tweetmelding = 'Melding: ('.date('d-m H:i', strtotime($time)).') '.$melding.''; /* tweet klaar maken */
    if (strlen($tweetmelding) >= 140){ /* zorg dat de tweet niet te lang word */
        $tweetmelding = substr_replace($tweetmelding, '...', 137, 137);
    }

    array_push($tweetarray, $tweetmelding); /* zet alle tweets in een array */
}
?>


Nu word $melding en $time buiten de function weggehaald. Nu weet ik dat ik dan function tweeting($melding, $time){ moet doen. Maar is het ook mogelijk om $melding en $time voor te defineren. Dat er standaard de $melding uit het script word overgenomen?
 
PHP hulp

PHP hulp

20/04/2024 01:39:52
 
Wouter J

Wouter J

17/12/2012 18:51:56
Quote Anchor link
Zoiets noemen we pass by reference. Dat wordt over het algemeen afgeraden. Je hebt namelijk 2 soorten functies: Pure functies en I/O functies. De Pure functies krijgen een waarde binnen (via de argumenten), doen er wat mee en geven vervolgens een waarde terug. I/O functies zijn de Input/Output functies. Deze maken contact met de buitenwereld.

In jouw geval heb je een Pure functie, hij krijgt waardes binnen, doet wat en geeft een waarde terug.
 
Eddy E

Eddy E

17/12/2012 20:38:23
Quote Anchor link
Wat jij wilt kan zeker wel, vooraf definieren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function tweeting($melding = 'Standaard melding', $time = 12827374)
 {

 // rest van funcie
 }
?>


Ik vind het raar dat je functie weet waar $time en $melding vandaan moeten komen.
Je hebt ze niet eens global gemaakt oid.

Daarnaast behoort een functie iets te returnen... jij doet dat niet.
 
Matthijs Vos

Matthijs Vos

20/12/2012 19:49:28
Quote Anchor link
Heey Eddy,

Ik bedoel eigenlijk meer $melding = $melding. $melding word eerder gevult met gegevens uit een rss. Hoe moet ik ze globaal maken? Het klopt dat mijn functie niks returned, want hij zet alleen wat ik de array, maar hoeft niks op het scherm neer te zetten.
 
- Mark -

- Mark -

20/12/2012 20:44:51
Quote Anchor link
Dat bedoelde Eddy ook niet met return.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?

    function tweeting($melding = 'Standaard melding', $time = 12827374){

    # Tweet klaarmaken.

        $tweetmelding = 'Melding: ('.date('d-m H:i', strtotime($time)).') '.$melding.'';


    # Controleren of de tweet niet te lang is.

        if(strlen($tweetmelding) >= 140){

        # De tweet is te lang dus we korten hem in.

            $tweetmelding = substr_replace($tweetmelding, '...', 137, 137);
        }



    # Resultaat terug sturen.

        return $tweetmelding

    }


    # Nieuwe tweet toevoegen.

        $tweetarray[] = tweeting($melding, $time);

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.