OOP - Variable global in Klasse benutzen

Müssen nicht, wenn du allerdings bei einer Eigenschaft (Member-Variable) sowie einer Funktion (Klassen-Methode) nichts angibst, wird automaitsch angenommen das es "public" ist.

Den Konstruktor musst du auf public stellen wenn du die Klasse von aussen instanzieren möchtest ala
PHP:
$myClass = new MyClass();

Es gibt aber noch andere Beispiele wo man den Konstruktor auf protected oder private setzen kann.
 
Hmm, warum probierst du es nicht einfach? Nur als Tipp: Wenn du den Constructor private deklarierst, was meinst du, was dann passiert? Ist es dann überhaupt noch möglich, ein Objekt von der Klasse zu erzeugen?
 
Hat Maniac bereits geschrieben: Muss man nicht, wird bei nicht Angabe automatisch auf public gesetzt.

EDIT:

Das muss aber nicht heißen, dass das für immer so bleibt. Es könnte sein, dass das PHP-Core-Team sich von heute auf morgen entscheidet, dass aus Sicherheitsgründen um zu drehen und als "deprecated" einzustufen.
 
Hier mal ein kleines Beispiel mit einer einfachen Singleton-Klasse, wobei der Konstruktor auf private gesetzt ist:

PHP:
<?php 
class Singleton{
	
	// statische private klasseninstanz
	static private $_instance = null;
	
	
	// konstruktor auf private, da es eine Singleton-klasse ist und nicht instanzieirt werden darf
	private function __construct(){
		// tu irgendwas
	}
	
	
	// einzige Zugriffsfunktion von aussen
	public static function getInstance(){
		
		// wenn keine Instanz besteht, erstelle eine neue
		if (self::$_instance === null){
			self::$_instance = new self();		
		}
		
		// zurückgegeben wird immer nur die eine Instanz
		return self::$_instance;
		
	}
	
	
	// braucht man nicht viel zu sagen *g*
	public function getHelloWorld(){
		return "Hello World";
	}
	
	
	
}

echo Singleton::getInstance()->getHelloWorld();  // Ausgabe: Hello World

// neue Instanz erzeugen geht nicht
$test = new Singleton(); // Fatal Error:  Call to private Singleton::__construct() from invalid context
 
Zurück