Functie Inkorten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny Kater

Danny Kater

06/10/2010 09:12:36
Quote Anchor link
Beste mensen,

Onderstaande functie werkt zo wel;
Quote:
function shorten($data, $length = 400, $endString = "... <a href=nieuws_bericht.php?id=........><i><u>Lees meer</a>") {


En zo niet meer;
Quote:
function shorten($data, $length = 400, $endString = "... <a href=nieuws_bericht.php?id='".$id."'><i><u>Lees meer</a>") {


Hoe kan ik in dit geval die combinatie maken?
 
PHP hulp

PHP hulp

23/12/2024 18:03:52
 

06/10/2010 09:27:04
Quote Anchor link
Sowieso, waarvoor maak je een nieuwe variabele aan?
Dat kan je net zo goed, als je dat wilt doen, buiten die functie.
 
Nicoow Unknown

Nicoow Unknown

06/10/2010 09:31:29
Quote Anchor link
Volgens mij is php er zowiezo niet happig op dat je een variable in een variable van een functie declaratie schrijft.
Voor de rest is het niet de bedoeling dat je zulke lange strings meegeeft als standaard in een variable.

Los het dan zo op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function shorten($data, $length = 400, $endString = null)
{

    if ($endString == null) {
        $endString = "... <a href=nieuws_bericht.php?id=".$id."><i><u>Lees meer</a>";
    }
}

?>


En Get variablen hebben geen enkele quotes nodig om hun waarde heen.
 
Robert Deiman

Robert Deiman

06/10/2010 09:36:31
Quote Anchor link
@TS en Nico

Waarom niet gewoon alleen het $id meegeven? nu gebruik je in de functie "shorten" de variabele $id, maar die wordt niet meegegeven, en ook nergens gedeclareerd (voor zover te zien.) Als deze buiten de functie wordt gedeclareerd, dan is die globaal. Dat is ook niet wenselijk.
Je kan het beter zo opzetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function shorten($data, $length = 400, $id)
{

        $endString = '... <a href="nieuws_bericht.php?id='.$id.'"><i><u>Lees meer</a>';
}

?>
 
Nicoow Unknown

Nicoow Unknown

06/10/2010 09:46:05
Quote Anchor link
Eens, zowiezo een vreemde constructie, ik denk niet dat je wilt dat je endString in de functie word beschreven, dat haalt namelijk 90% van de herbruikbaarheid van je code weg.

Dus ik zou zeggen, maak je functie gewoon zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function shorten($data, $length=400, $endString="")
{

    return substr($data, 0, $length) . $endString;
}

?>


En vergeet niet de <i>en<u> af te sluiten!
Gewijzigd op 06/10/2010 09:48:23 door Nicoow Unknown
 
Niek s

niek s

06/10/2010 10:31:43
Quote Anchor link
Maar om de oorspronkelijke vraag te beantwoorden:
Die default parameters worden statisch in de PHP geinjecteerd. Dit wordt door PHP gedaan voor het runnen.
Je kan daarom dus nooit een dynamische standaard parameter hebben. PHP heeft op dat moment namelijk nog geen besef van variabeles.
De constructie is natuurlijk te maken, maar dan moet je deze in een ifje afvangen zoals hierboven al beschreven is.

Echter is het zo dat, wat hierboven beschreven staat, het in dit geval echt beter is om het anders op te lossen ;-)
 



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.