php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.02.2006, 12:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
Der Funktion das Datenbank-Objekt als Parameter übergeben.
Hallo,

genau das habe ich doch schon versucht.

Nochmal :
Code:
$db = new db($db_server,$db_user,$db_password,$db_name);

function test(){
     global $db;
     $result = $db->query("datenbank Query")
}

test();
-> Geht

Code:
$db = new db($db_server,$db_user,$db_password,$db_name);

function test($db){
     $result = $db->query("datenbank Query")
}

test($db);
-> geht NICHT, es kommt der o.g. Fehler
Code:
Call to a member function query() on a non-object in
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.02.2006, 12:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von MS Master
Äh hallo, ich HABE sowohl die Funktions Definition, als auch den Funtkionsaufruf im 1. Beitrag gepostet. !!!!
Trotzdem war diese nicht korrekt, da PHP nur äußerst selten mit
unberechtigten Meldungen um sich schmeißt.

Daher meine Frage:
Zitat:
Zitat von karl-150
Wie genau
  Mit Zitat antworten
Alt 05.02.2006, 12:26  
Gast
 
Beiträge: n/a
Standard

@karl-150

genau deswegen habe ich das jetzt nochmals Komplett aufgeschrieben, was geht, und was nicht geht.
  Mit Zitat antworten
Alt 05.02.2006, 12:28  
Gast
 
Beiträge: n/a
Standard

Und jetzt packst Du noch einmal in Kurzform die Klasse dazu, so dass auch
ich die Meldung nachvollziehen kann.

PHP-Code:
<?php

class db
{
  function 
query($param) {
    echo 
$param;
  }
}

$db = new db($db_server,$db_user,$db_password,$db_name);

function 
test($db){
     
$result $db->query("datenbank Query");
}

test($db);

?>
  Mit Zitat antworten
Alt 05.02.2006, 12:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
class MyObject
{
    function 
myMethod()
    {
        print 
"Hello World!";
    }
}

function 
MyFunction($object)
{
    
$object->myMethod();
}

$myObject = new MyObject();
MyFunction($myObject);
?>
Und was geht daran nicht?
Zergling-new ist offline   Mit Zitat antworten
Alt 05.02.2006, 12:33  
Gast
 
Beiträge: n/a
Standard

Vor allem ist Deine Ferhlermeldung eindeutig - non-object.

Dein Funktionsaufruf etc. entspricht also definitiv nicht dem oben geposteten.
  Mit Zitat antworten
Alt 05.02.2006, 12:35  
Gast
 
Beiträge: n/a
Standard

Sorry, aber ich kann deine Argumentation nicht nachvollziehen.

Beispiel 1 was ich geschrieben habe geht, das 2. hingegen nicht.

Sie unterscheiden sich nur in der art, wie ich versuche "$db" in die Funktion zu bekommen. Das eine geht , das andere nicht.

Und nochmals, Beispiel 1 Funktionet 100% und Fehlerfrei, die Klasse liefert die Daten wie geünscht.

Nur Beispiel 2 scheint ins leere zu gehen, sprich $db ist zwar da, aber doch irgendwie nicht vollständig.

Achja, ich benutze PHP5, es sollte aber auch mit PHP4 gehen.
  Mit Zitat antworten
Alt 05.02.2006, 12:38  
Gast
 
Beiträge: n/a
Standard

Was sagt Folgendes?

PHP-Code:
<?php
...
function 
test($db)
{
    
var_dump($db);
}
...
?>
  Mit Zitat antworten
Alt 05.02.2006, 12:41  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Mach doch mal ein var_dump($db) in der Funktion, vor dem Funktionsaufruf und nach dem bauen des Objektes. Hast du denn dein Beispiel oben so ausprobiert oder ist das nur die Zusammenfassung von dem, was du meinst, was in deinem Skript passiert. Sieht ja so aus, als ob das Objekt eben garnicht gebaut wird. Hast du error_reporting auf E_ALL?

Basti
Basti ist offline   Mit Zitat antworten
Alt 05.02.2006, 12:43  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von karl-150
Vor allem ist Deine Ferhlermeldung eindeutig - non-object.

Dein Funktionsaufruf etc. entspricht also definitiv nicht dem oben geposteten.
Sorry, aber ich habe NUR folgendes geändert :

Code:
global $db;
entfernt in der Funktion.

Stattdessen aus
Code:
function test (){
}

ein

function test ($db){
}
rein, und im Funktionsaufruf aus
Code:
test();

ein 

test($db);
gemacht.

Mehr wurde nicht geändert.

Und wie gesagt, sobald ich da wieder ein
Code:
global $db;
funktioniert es sofort wieder.
  Mit Zitat antworten
Antwort


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
aufrufende Klasse und Funktion abfragen?? galaxyshadow PHP Tipps 2008 4 10.06.2008 06:43
funktion innerhalb einer Klasse mit call_user_func aufrufen phpbeginner PHP Tipps 2008 8 22.05.2008 16:20
Zugriff auf verschachteltes Objekt aus Funktion FloMX PHP-Fortgeschrittene 10 28.03.2006 17:01
aus einer funktion auf funktion anderer klasse zugreifen seejay PHP Tipps 2006 3 05.01.2006 10:37
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Ausgabe Var einer Klasse geht nicht mit externer Funktion HL1234 PHP-Fortgeschrittene 2 01.08.2005 19:40
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Problem mit einer rekursiven Funktion in einer Klasse ajo_silent PHP-Fortgeschrittene 6 13.06.2005 16:40
funktion in klasse ruft funktion in anderer klasse auf phpfortgeschrittener PHP Tipps 2005 6 17.04.2005 17:47
Instanz einer Klasse innerhalb einer Funtion verwenden PHP-Fortgeschrittene 9 14.04.2005 21:51
[Erledigt] Instanz bilden innerhalb einer Klasse PHP Tipps 2004 7 11.12.2004 12:58
Object innerhalb einer XML Parser Funktion deklarieren PHP-Fortgeschrittene 0 10.12.2004 14:40
Funktion einer Klasse über Link aufrufen? MortakArtos PHP Tipps 2004-2 4 18.11.2004 12:05
Problem mit optionalen Parametern bei Funktion in Klasse RudiS PHP-Fortgeschrittene 6 24.09.2004 09:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php klasse innerhalb einer funktion

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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.