
Sehr geehrte Besucher, wir mochten gern, dass dieses Forum weiterhin ein hohes Niveau besitzt. Ausserdem mochten wir gerne vermeiden, dass Fragen immer doppelt vorkommen. Deshalb appellieren wir auf Ihre Geduld und bitten Sie zuerst nach Antworten zu suchen und erst dann Fragen zu stellen. Benutzen Sie bitte dafur entweder das Sucheformular unten, oder unsere Suchmaschine, wenn Sie nach Befehlen, oder sonstigen Inhalten fundig werden mochten. Zum Forum | Seite 0 |  __construct | smoof | 22.05.2010 | 12:15:03 |  bah | ich | 22.05.2010 | 16:16:35 |  [Kein Betreff] | smoof | 22.05.2010 | 21:57:56 |  __construct | Günni | 24.05.2010 | 23:21:18 |  Mach Dich mit Exceptions vertraut | Jens | 27.05.2010 | 21:57:36 |  Danke.. | smoof | 31.05.2010 | 09:05:28 | Hi smoof,
Operatoren geben wie Funktionen einen Wert zurück,
darum ist bei deiner Abfrage "if($a=new foo($x)) . . ."
die Bedingung immer erfüllt, weil eine Zuweisung erfolgt ist,
unabhängig davon, was die Funktion __construct zurückgibt.
>> . . . $b soll dann aber false sein . . . <<
$b KANN nicht false sein, weil du doch ein Objekt(eine Klasse) erzeugst, der Konstruktor
kann aber im Fehlerfall eine Variable der Klasse mit false belegen, und die musst du dann
wohl oder übel abfragen.
>> . . . Mit einer vorab Prüfung muss ich doppelt so viele Anfragen stellen. . . . <<
Eine Vorab-Prüfung brauchst du nicht, das macht, wie gesagt, der Konstruktor. Ist eine
Abfrage positiv, so belegst du eine Variable mit dem Datensatz und gibst diesen einfach
aus, oder was auch immer. Z.B.:
<?php
class cdb{
private $found;
private $data_set;
function __construct($table,$id){
$query="select * from $table where id=$id";
$result=mysql_query($query);
mysql_num_rows($result)>0 ? $this->found=true : $this->found=false;
$this->set_data($result);
}
function found(){
return $this->found;
}
function set_data($query_result){
if($this->found()){
$this->data_set=mysql_fetch_array($query_result,MYSQL_ASSOC);
}
}
function get_data(){
return implode("|", $this->data_set);
}
};
$id=10;
$db=new cdb("tabelle2",$id);
if($db->found()){
echo "Datensatz $id gefunden<br>";
echo $db->get_data();
// Und/Oder weitere/andere Anweisungen
}else{
echo "Datensatz $id nicht gefunden";
// Und/Oder weitere/andere Anweisungen
}
?>
Gruß
Günni
| Antworten | Zurück | Eine neue Frage stellen | der Beitrag muss weg! |
|
|
|
|
|