2012-04-12 20 views
1

Wenn TestPage.php im Browser ausgeführt wird, wird versucht, ein neues Objekt zu erstellen ..., aber sonst nichts. Wird der Konstruktor nicht aufgerufen?PHP-Konstruktor wird nicht aufgerufen? oder so?

Diese für beide Klasse nicht der vollständige Code ist, aber hoffentlich ist es genug für jemanden, der mir zu sagen, wo ich falsch ...

TestPage.php

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8"> 
     <title></title> 
    </head> 
    <body> 
     <?php 
     class MyClass { 
     $api_key = 'somestring'; 
     $username = 'username'; 
     echo 'trying to create new obj...'; 
     $myObj = new MyClass($api_key, $username); 
     echo 'new obj created...'; 

    ... 
     ?> 
    </body> 
</html> 

MyClass.class gehe .php

<?php 
class MyClass { 
    protected $_api_key; 
    protected $_username; 


    public function __construct($api_key, $username) { 
     echo 'entered constructor...'; 
     $this->_api_key = $api_key; 
     $this->_username = $username; 
     echo 'leaving constructor...'; 
    } 

    ... 
} 
?> 
+2

zu definieren Jedes Mal, wenn Sie entwickeln, sollten Sie entweder aktiv beobachten Sie Ihre Web-Servers Fehlerprotokoll (Apache's Fehlerprotokoll zum Beispiel) oder display_errors sollte an sein. Auf diese Weise sehen Sie die Syntax, die Ihr Skript zerstört. – Corbin

+0

Danke für den Tipp. Ich werde das untersuchen. –

Antwort

4

Sie müssen es tatsächlich als eine Klasse definieren. Das würde aussehen wie:

Nur den Code, den Sie in einer Datei haben und benennen, wird nichts allein tun.

Zusätzlich müssen Sie diese Datei einschließen, falls Sie dies nicht bereits getan haben. Etwas wie:

include 'MyClass.class.php'; 
+0

Danke .... Ich hatte es in einer Klasse, eigentlich, versehentlich bearbeitet, aber ich kann nicht glauben, dass ich vergessen habe, oder require_once die Klassendatei. Muss Zeit sein, um für den Tag nach Hause zu gehen. –

+0

Geschieht jedem von Zeit zu Zeit. Freut mich, Ihnen behilflich zu sein. – clexmond

1

Sie benötigen class Schlüsselwort eine Klasse bitte http://php.net/manual/en/language.oop5.basic.php für einige grundlegende Beispiele

Versuchen

class MyClass 
{ 
protected $_api_key; 
    protected $_username; 


    public function __construct($api_key, $username) { 
     echo 'entered constructor...'; 
     $this->_api_key = $api_key; 
     $this->_username = $username; 
     echo 'leaving constructor...'; 
    } 
}