php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2004, 23:00  
Gast
 
Beiträge: n/a
Standard Objektmethoden aufrufen // Scope von Objekten

<?
include_once("tools.php");

class datBase
{
var $dbName;
var $dbHostName;
var $dbUserName;
var $dbPassWord;
var $tools;


function datBas($name, $host, $user, $pass)
{
$this->dbName = $name;
$this->dbHostName = $host;
$this->dbUserName = $user;
$this->dbPassWord = $pass;
$this->tools = new tools;

}

//funktioniert - mit Instanzierung in der Funktion

function selectDatabase($idendtifer)
{
$bool = mysql_select_db($this->dbName);
$this->tools = new tools;
$this->tools->verifier($bool, $idendtifer);


}
//funktioniert nicht - Verwendung der Objektvariable $tools
function connectToDatabase($identifier)
{
$bool = mysql_connect($this->dbHostName, $this->dbUserName, $this->dbPassWord);
$tools->verifier($bool, $idendtifer);

}


}

?>

Hilfe, wäre nett, wenn mir das jemand erklären kann

Fehlermeldung bei zweiter Funktion: Fatal error: Call to a member function on a non-object in C:\Programme\Apache Group\Apache2\htdocs\internetProjects\site\datBase .php on line 36
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.12.2004, 23:06  
Gast
 
Beiträge: n/a
Standard Re: Objektmethoden aufrufen // Scope von Objekten

Zitat:
Zitat von ar
Hilfe, wäre nett, wenn mir das jemand erklären kann
Die lokale Variable $tools existiert nicht in dieser Methode.
 
Alt 15.12.2004, 23:07  
Gast
 
Beiträge: n/a
Standard

Muss das hier:
PHP-Code:
 $tools->verifier($bool$idendtifer); 
nicht:
PHP-Code:
 $this->tools->verifier($bool$idendtifer); 
heissen?
 
Alt 16.12.2004, 01:55  
Gast
 
Beiträge: n/a
Standard

@du-weißt-schon-wer: nein so habe ichs eh schon probiert - selber Fehler
@meikel: daß, die eine Objektvariable, die ich in der Funktion select-database definiert habe, nicht in connectToDatabase sichtbar ist, weiß ich schon, aber die, die ich im Konstruktor definiert habe sollte es, oder?

daß mit der Instanzierung in der ersten Funktion habe ich erst ausprobiert nachdem, die Variable, die ich im Konstruktor definiert habe, offenbar nicht (public) sichtbar ist, ich aber nicht weiß wieso.
 
Alt 16.12.2004, 02:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von ar
@meikel: daß, die eine Objektvariable, die ich in der Funktion select-database definiert habe, nicht in connectToDatabase sichtbar ist, weiß ich schon, aber die, die ich im Konstruktor definiert habe sollte es, oder?
Nein. Lokal ist lokal und bleibt - egal ob Methode oder Funktion.
 
Alt 16.12.2004, 08:18  
Gast
 
Beiträge: n/a
Standard

also was muß ich machen, damit $tool public ist?
 
Alt 16.12.2004, 09:32  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von ar
also was muß ich machen, damit $tool public ist?
Warum fragst Du das? Du weißt es doch, wie es richtig gemacht wird (s.o.)
 
Alt 17.12.2004, 03:42  
Gast
 
Beiträge: n/a
Standard ?

? - ich habe geglaubt es zu wissen, aber es funktioniert eben nicht und weil ich es mir nicht erklären kann, frage ich

deine Antwort check ich jetzt übrigens auch nicht

nur kurz noch zur Präzission, falls dir meine Frage nicht schon zu langweilig ist: ich möchte $tool eigentlich nur einmal instanzieren (also im konstruktor) und nicht zweimal, jeweils in der Funktion, wo ich $tool brauche
 
Alt 17.12.2004, 03:56  
Gast
 
Beiträge: n/a
Standard Re: ?

Zitat:
Zitat von ar
deine Antwort check ich jetzt übrigens auch nicht
Scroll mal nach oben... noch weiter ... ja, ich meine den 1. Text, in dem Du beschrieben hast, wie es funktioniert und wie es nicht funktioniert. Was hindert Dich daran, so zu programmieren, daß es funktioniert?

Auf eigene Klassenvariablen und eigene Methoden greift man mittels $this zu. Ansonsten verhält sich bezüglich des Namensraumes eine Methode (fast) genauso wie einer Funktion.

Lies den Rest bitte im Handbuch nach.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Global Scope von Funktionen WickedImp PHP-Fortgeschrittene 13 16.05.2006 00:30
anderes PHP-Script aufrufen Smily0412 PHP Tipps 2005-2 14 27.10.2005 14:28
Merkwürdiges Verhalten von Objekten in einem Array PHP-Fortgeschrittene 6 20.10.2005 00:18
Datei aufrufen PHP Tipps 2005-2 7 09.08.2005 18:29
[Erledigt] Kommunikation zwischen Objekten - Wie geht es richtig? PHP Tipps 2005 9 11.04.2005 00:57
Funktion aufrufen im selben Script aufrufen PHP Tipps 2005 5 23.02.2005 21:21
Aus PHP ein anderes PHP-Proggi aufrufen PHP Tipps 2004-2 2 22.11.2004 18:04
[BlödeFrage:] aufrufen von html/php seiten mittels php PHP Tipps 2004 9 16.08.2004 15:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php objektmethoden anzeigen, objektmethode aufruf, php scope, scoping von objekten, php objektmethoden, \include_once(\'./tools.php\');\, scope von objekten php

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:53 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.