Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
[PHP]Syntax-Fehler - Weiß nicht weiter
#1
Hallihallo,

Es geht um folgende Zeile:

PHP-Code:
function blaetterfunktion($seite,$maxseite,$url="index.php?site=newsarchiv".$HIER."",$anzahl=4,$get_name="newsarchiv")
{
...
}
... 

Ich möchte, da wo die Variable $url ist, hinter newsarchiv noch eine Variable anhängen. Ich hoffe mal ihr seht und könnt erahnen, was ich meine.

Die Variable $HIER wäre in dem Fall ja auch schon gesetzt.

Wäre sehr toll, wenn ihr mir helfen könntet.

Fehlermeldung:

Code:
Parse error: syntax error, unexpected '.', expecting ')'

MfG,
Waluigi
Zitieren
#2
Hallo,
die "" hinter deinem $HIER sind zu viel.

PHP-Code:
function blaetterfunktion($seite$maxseite$url="index.php?site=newsarchiv".$HIER$anzahl=4$get_name="newsarchiv"

So würde ich es probieren. Hab es aber nicht getestet.
Zitieren
#3
Leider kommt dann folgende Fehlermeldung:

Code:
Parse error: syntax error, unexpected '.', expecting ')'

MfG,
Waluigi
Zitieren
#4
Das wird höchst wahrscheinlich so gehen:

PHP-Code:
function blaetterfunktion($seite,$maxseite,$url="index.php?site=newsarchiv",$anzahl=4,$get_name="newsarchiv"$HIER="")
{
$url.=$HIER;
...


Das $HIER="" bedeutet nur, dass wenn die Variable nicht übergeben wird, dass sie leer ist.
Ansonsten steht der Wert drinnen.

MfG Megaleecher
Höre nie auf besser zu werden, weil dann hast du aufgehört gut zu sein.
Zitieren
#5
Veränderliche Zuweisungen in der Funktionsdeklaration (also speziell hier das Nutzen der Variablen $HIER) sind verboten, bei den default-Werten für die Parameter muss es sich um konstante Ausdrücke handeln (also zB nur ein einfacher String, wie Megaleecher schon andeutete).

Wenn du nun wirklich das $HIER mit als default-Wert haben willst, kannst du die Zuweisung "nachträglich" vornehmen:
PHP-Code:
function blaetterfunktion($seite$maxseite$url="default"$anzahl=4$get_name="newsarchiv")
{
    global 
$HIER// Damit der Wert von $HIER auch innerhalb der Funktion sichtbar wird
    
if ($url == 'default')
    {
        
$url "index.php?site=newsarchiv".$HIER;
    }

wobei für "default" ein Wert gewählt werden sollte, der niemals für $url angegeben werden wird (oder zum Beispiel ein leerer String). Entsprechend dann die if-Bedingung anpassen.
Was ist der Unterschied zwischen der Politik und der Informatik?
In der Informatik ignoriert man führende Nullen...
Zitieren