Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

php konstante in class var benutzen

Empfohlene Antworten

Veröffentlicht

Hi Leute,

ich hab mal wieder ein merkwürdiges Problem

Folgende Ausgangssituation:


define('CONTENT_STATE_PUBLISHED',1)

class klasse {
var $array = array('cont'=>
array(
'cond'=>'blubb'.CONTENT_STATE_PUBLISHED,
);

}
[/PHP]

Ich bekomme in der Zeile 'cond'=>... einen PHP-Fehler "Syntax Error: Expecting: ')'" Weiß jemand warum das passiert? Kann ich an der stelle keinen . benutzen um eine konstante und einen string zusammen zu fügen? Wenn ich nur das 'blubb' ODER CONTENT_STATE_PUBLISHED da stehen habe funktioniert es.

gruß

Jan

Grad noch bisschen getestet. Hat wohl mit der Konsante selbst nix zu tun. Der concat operator (.) scheint bei array die als klassenvariable definiert werden nicht zu funktionieren :/

logikfehler ;)

du versuchst eine stringoperation "." in der klassendefinition also zur parse-Time auszuführen. das geht nicht.

sowas muss in den Konstruktor, oder eine Methode die zur "laufzeit" Run-time ausgeführt wird.

Einfach mal das Komma entfernen in:


'cond'=>'blubb'.CONTENT_STATE_PUBLISHED,
[/PHP]

Und natürlich fehlt dir auch noch eine schließende Klammer für:

[PHP]
array('cont'=> [...]

Gruß

Warum einfach, wenns auch kompliziert geht, was Aiun!? :-)

natürlich starbuck

hat jemand getestet ob es denn so auch geht ? ^^


define('CONTENT_STATE_PUBLISHED',1)
[/PHP]

Da fehlt es noch an einem Semikolon ...

du versuchst eine stringoperation "." in der klassendefinition also zur parse-Time auszuführen. das geht nicht.

Du hast recht. Wer lesen kann ist klar im Vorteil.

hat jemand getestet ob es denn so auch geht ?

So wie gepostet nicht, so wie du vorschlugst, ja.

Gruß

Interessant dass das bei Klassendefinition nicht geht, das geht doch in anderen Sprachen auch?!? Oder bin ich da voll auf dem Holzweg?

Sorry dass ich so lange nix mehr geschrieben hab, bin hier total im Stress und hab das jetzt alles komplett anders gelöst ;)

Aber danke euch dass ihr euch da soviel Gedanken zu gemacht habt.

du musst überlegen was / wo geschieht.

Klassendefinitionen sind "definitionscode", du kannst ja mit deinem Auto auch nicht fahren, während du an den Kostruktionsplänen zeichnest. .... so in etwa.

dynamische dinge (und Stringoperationen an sich, egal was verwendet wird sind dynamisch) gehen erst wenn er einmal beginnt zu fahren :)

Hi Leute,

ich hab mal wieder ein merkwürdiges Problem

Folgende Ausgangssituation:


define('CONTENT_STATE_PUBLISHED',1)

class klasse {
var $array = array('cont'=>
array(
'cond'=>'blubb'.CONTENT_STATE_PUBLISHED,
);

}
[/PHP]

Ich bekomme in der Zeile 'cond'=>... einen PHP-Fehler "Syntax Error: Expecting: ')'" Weiß jemand warum das passiert? Kann ich an der stelle keinen . benutzen um eine konstante und einen string zusammen zu fügen? Wenn ich nur das 'blubb' ODER CONTENT_STATE_PUBLISHED da stehen habe funktioniert es.

gruß

Jan

Ich weiß ja nicht ob es euch schon aufgefallen ist aber hier fehlt nur ne schließende Klammer ")" und das Problem wäre gelöst.

var $array = array[b]([/b]'cont'=>

array[color=Red]([/color]

'cond'=>'blubb'.CONTENT_STATE_PUBLISHED,

[color=Red])[/color] // Von mir rein Editiert Fehlte

[b])[/b];

Der Fehler lautet: Syntax Error: Expecting: ')'

Er erwartet eine geschlossene Klammer aber da diese nicht vorhanden ist kommt der Fehler.

Mfg

Mike1990

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.