Defines in PHP

Gast #1148348
Lesenswert?

Hallo.

Eine Frage zu PHP. Habe angefangen damit zu programmieren.

Gibt es eine Möglichkeit in PHP defines wie in C zu definieren.
D.H. in c:
#define WERT           10

in PHP
?????????????

Viel Wichtiger. Gibt es noch die Möglichkeit des Funktions defines.
In c:
#define  CALCULATE(zahl)      Berechne (Zahl);

in PHP
?????????????

Danke für Eure Hilfe

BYE
tomi
#1148361
Lesenswert?

http://de.php.net/manual/de/function.define.php

aber du bekommst (leider) keine Laufzeitfehler wenn du dich in der 
Konstante "verbuchstabierst".
1
#define  CALCULATE(zahl)      Berechne (Zahl);
weiß jetzt nicht was das bringen soll aber ich würde:
1
function CALCULATE(zahl) { return Berechne(Zahl) }
machen. evtl löst aber auch das
http://de.php.net/manual/de/function.create-function.php
dein Problem.

Gruß
Roland
Gast #1148751
Lesenswert?

Hallo nochmal.

Danke das habe ich gesucht. Jetzt habe ich aber folgendes problem.
Habe das in PHP

$Func_1 = create_function('','return "Hallo";');

function GetRaum1()
{
  $Raum = $Func_1();
  return $Raum;
}

Wenn ich die Funktion GetRaum1() aufrufe bekomme ich im Browser 
folgendes:
"Fatal error: Call to undefined function Func_1() in 
D:\webmy\rooms_func.php on line xx"

Wie kann ich die definierte Funktion im gleichen file aufrufen?
Wenn ich $Func_1() aus einem anderen skript aufrufe funktioniert es.

Was ist denn anders wenn es im gleichen File steht?

Danke.

BYE
Thomas
Gast #1148992
Lesenswert?

Achso: Es gibt define in PHP. Allerdings funktioniert das ganz anders 
als in C oder C++. In PHP kannst du nur ganz bestimmte primitive Typen 
in defines verwenden (Arrays gehen z.B. nicht). Für feste Zahlenwerte 
oder feste Strings ist define also zu gebrauchen, für alles andere 
eigentlich nicht.

Insbesondere ist es nicht möglich, mit define irgendwelche Funktionen 
oder Makros zu definieren. Dafür gibt es die Syntax 
"Funktions-Definition", die so aussieht:
function Func_1() {
    return "Hallo";
}
Gast #1149014
Lesenswert?

Hallo,
ich bin nicht der php-freak,
aber was ist hiermit

$Func_1 = create_function('','return "Hallo";');

function GetRaum1()
{
  $Func_1 = create_function('','return "Hallo";');

  $Raum = $Func_1();
  return $Raum;
}

echo GetRaum1();


Sollte dann auch aus dem eigenen script aufgerufen werden
#1149062
Lesenswert?

Hallo,

vom ursprünglichen Grundsatz her ist PHP eine Server-basierte 
Scriptsprache.
Damit kann sowieso alles nur aus einem Script stammen, wenn das 
durchgelaufen ist, ist die Geschichte zuende.

Gemeinsam genutzte Teile kannst Du zwar auslagern und per .include 
einbinden, mehr aber üblicherweise auch nicht.

Liegt hauptsächlich daran, daß ja auf einem Webserver für jeden Aufruf 
eine Instanz eingerichtet werden muß, die nach durchlaufen des Scriptes 
wieder freigegeben werden muß (würde den Server-Provider wohl ziemlich 
stören, wenn es nicht so wäre. ;)

Aber vermutlich habe ich auch nur nicht so richtig verstanden, worum es 
Dir geht.

Gruß aus Berlin
Michael
Gast #1149066
Lesenswert?

> $Func_1 = create_function('','return "Hallo";');
>
> function GetRaum1()
> {
>   $Func_1 = create_function('','return "Hallo";');
>
>   $Raum = $Func_1();
>   return $Raum;
> }
>
> echo GetRaum1();

Geht's noch umständlicher? ;-)


Mal davon abgesehen, dass du $Func_1 jetzt in zwei verschiedenen Scopes 
definiert hast: create_function ist für sowas doch total unsinnig. Was 
spricht gegen eine simple Funktionsdefinition der folgenden Art?

function Func_1() {
    return "Hallo";
}

Solche Funktionsdefinitionen kann man sogar lokal machen.
Wenn man unbedingt möchte, kann man also schreiben:

function GetRaum1()
{
  function Func_1() {
      return "Hallo";
  }

  $Raum = Func_1();
  return $Raum;
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren