Require-Daten in Klassen-Variablen ..Hilfe
h90214
- php
hi.
ich suche jetzt seit ein paar stunden nach einer lösung - ohne erfolg.
es ist eigentlich ganz simpel:
(habe php 5 und mysql)
in einer datei stehen meine DB-Zugangsdaten alá:
db_user="test";
.
.
.
und ich habe eine Klasse in einer wiederum seperaten datei.
require(db.php)
class geo{
.
.
.
}
Das einzige was ich möchte, ist die variablen an die klasse zu übergeben.
aber das gelingt mir nicht!
kann mir jemand helfen?
(get set, __contruct etc. habe ich schon erfolglos probiert)
hei EKKi
danke für die antwort.
sorry für die ungenaue angebe. hab das nur kurz runtergeschrieben. im script hab ich das stehen:
require('../db/db.php');
das ist auch nicht mein problem. ich bekomme ja die daten in die "dateiebene" aber eben nicht in die "klassenebene"
auch mit global ging es nicht.
also:
anderes bsp.:
<?php
$mahlzeiten = 3;
class essengehen{
//wie bekomme ich die variable $mahlzeiten hier rein?
}
?>
Hello,
$mahlzeiten = 3;
class essengehen{
//wie bekomme ich die variable $mahlzeiten hier rein?
}
?>[/code]
Wie werden den Eigenschaften in Klassen festgelegt?
Gibt es unterschiedliche Arten von Eigenschaften? Flüchtige und persistente?
Wie unterscheidet man die Zugriffsrechte auf Eigenschaften von Klassen?
Was ist eine Methode?
Was versteht man unter den speziellen Methoden "Getter" und "Setter"?
siehe hierzu auch http://www.php.net/manual/en/language.oop5.php
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Grüß Gott
Ich habe geschrieben, dass ich schon gesucht habe. Auch diese Seite habe ich mir schon angeschaut. Aber danke.
Hello,
Ich habe geschrieben, dass ich schon gesucht habe. Auch diese Seite habe ich mir schon angeschaut. > Aber danke.
Bitte, gerne geschehen, :-P
Du schreibst in deinem Eröffnungsposting etwas von:
"(get set, __contruct etc. habe ich schon erfolglos probiert)"
Aber leider zeigst Du deine Versuche nicht. Du erzählst leider auch nicht, wie weitreichend Deine Erfahrungen in der Programmierung, in PHP und im Speziellen in der PHP-OO-Programierung sind.
Wo müssen wir Dich denn abholen?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
nunja, anscheinend stehe ich ziemlich am anfang, ich es jetzt, auf die gleiche weise wie ich es am anfang versuchte, hinbekommen habe und nicht verstehe warum es am anfang nicht ging.
egal wie. falls jemand irgendwann ein ähnliches problem haben sollte:
hier der script (ausschnitt aus der klasse):
function geo(){
require('sysdat/php/db/db.php');
$this->mysql_host=$mmysql_host;
$this->db_name=$mdb_name;
$this->db_user=$mdb_user;
$this->db_pass=$mdb_pass;
$this->gen_ip();
}
Hallo,
nunja, anscheinend stehe ich ziemlich am anfang, ich es jetzt, auf die gleiche weise wie ich es am anfang versuchte, hinbekommen habe und nicht verstehe warum es am anfang nicht ging.
ja, das sieht man an Deinem Code. Sowas macht man nicht.
egal wie. falls jemand irgendwann ein ähnliches problem haben sollte:
hier der script (ausschnitt aus der klasse):
dann soll derjenige wissen, dass man ein solches Problem *auf gar keinen Fall* so behebt, wie es nun folgt:
[code lang=php]
function geo(){
require('sysdat/php/db/db.php');
$this->mysql_host=$mmysql_host;
$this->db_name=$mdb_name;
$this->db_user=$mdb_user;
$this->db_pass=$mdb_pass;
$this->gen_ip();
}
Ein Einbinden von anderen Ressourcen innerhalb einer Klassendefinition deutet in den meisten Fällen (bei PHP) auf einen massiven Fehler hin.
Du könntest zum Beispiel:
a) diese Daten im Konstruktor übergeben
b) diese Daten per Setter setzen
c) einfach eine Datenbankverbindung übergeben
d) die benötigten Daten von einer Hilfsklasse liefern lassen
und sich die Klasse auf ihren Spezialkram konzentrieren lassen.
Freundliche Grüße
Vinzenz
Hallo,
sorry für die ungenaue angebe. hab das nur kurz runtergeschrieben. im script hab ich das stehen:
require('../db/db.php');
tja, das war der offensichtlichste Fehler.
<?php
$mahlzeiten = 3;
class essengehen{
//wie bekomme ich die variable $mahlzeiten hier rein?
}
?>
Ehrlich gesagt, verstehe ich nicht so ganz was Du willst.
Einfache Antwort: gar nicht. Klassenbasierte OOP arbeitet anders.
Nächste Antwort:
übergib den Variableninhalt bei der Erzeugung der Instanz im Konstruktor.
Hast Du Deinen Angaben zufolge bereits erfolglos versucht. Wir kennen Deine Versuche natürlich nicht.
Noch eine Möglichkeit:
Setze per Setter die entsprechende Eigenschaft auf den gewünschten Wert. Hast Du Deinen Angaben zufolge auch bereits versucht.
Möglicherweise hast Du ein Verständnisproblem. Das Setzen einer Eigenschaft erfolgt nicht bei der Klassendefinition, sondern dann, wenn man ein Objekt nutzt, d.h. erzeugt.
Freundliche Grüße
Vinzenz