Tips for Linux Explorers Nested Sets - Arne Klempert Während meiner zeitweise recht intensiven Beschäftigung mit PHP bin ich irgendwann mal über das Nested-Sets-Konzept gestolpert, eine faszinierende Methode zur Abbildung von hierarchischen Strukturen in einer relationalen Datenbank. Ein Ergebnis meiner Auseinandersetzung damit war der folgende Fachartikel für das PHP-Magazin. Nested Sets – Verschachtelte Bäume mit MySQL von Arne Klempert Jeder Programmierer steht früher oder später vor der Aufgabe, Baumstrukturen in einer Datenbank abbilden zu müssen - sei es für ein hierarchisches Diskussionsforum, die Navigation einer Website oder zur Abbildung einer Ordner- und Dateistruktur. Von den ungezählten Möglichkeiten, Baumstrukturen in SQL-Datenbanken abzubilden (ein Vergleich verschiedener Ansätze findet sich in Ausgabe 2.2002) ist das Nested Sets-Modell sicher eines der interessantesten. "Nested Sets" bedeutet wörtlich übersetzt "Verschachtelte Mengen". Abbildung 1: Mengendarstellung Abbildung 2: Hierarchische Darstellung Blick auf Teilbäume
Home Page Interface - php bar Aus php bar Mit einem (dt. Schnittstelle) kann man definieren, welche Methoden eine Klasse haben muss. Dies ist vergleichbar mit der Vererbung von Klassen, mit dem Unterschied, dass das Interface keine Eigenschaften besitzt, sondern nur die Methodenköpfe enthält, die dann von der neuen Klasse überschrieben werden müssen. Allerdings ist es möglich Konstanten zu definieren, die den Klassen, die das Interface implementieren, zur Verfügung stehen. Ein Interface ist ähnlich einer abstrakten Klasse, welche nur abstrakte Methoden beinhaltet. Nützlich ist dies, wenn man mehrere Klassen schreibt, die man alle zu einer Kategorie bzw. einer Funktionalität zusammenlegen kann. 1 interface logger { 2 public function open ( ) ; 3 public function write ( $msg ) ; 4 public function close ( ) ; 5 } 1 // Beispiel eines Interfaces mit Konstanten 2 interface loggingLevels { 3 const NOTICE = '1' ; 4 const WARNING = '2' ; 5 const ERROR = '4' ; 6 } 1 class IOStream implements IStream, OStream 2 { 3 // ... 4 }
Basic Linux Commands With Man Pages -- Debian Admin Here are some basic commands to get you started in the wonderful world of Linux and other UNIX variants. All of these commands should work from your command prompt (regardless which shell you're using).You MUST press enter to invoke the command.All UNIX and Linux commands are case sensitive. There are of course thousands of Linux related commands and procedures. You can also execute multiple commands by separating each one with a ; for example cd newdir; mkdir thatdir ; ls -la will first change directories to the newdir directory, then create a directory called thatdir, then list all the files in long format. If you think some thing need to be added to this list let me know. access -- determine whether a file can be accessed Syntax access -mode file For more options and how to use check access man page alias -- define or display aliases alias [alias-name[=string] ...] For more options and how to use check alias man page bg -- run jobs in the background bg [job_id ...] cal -- displays a calendar
Interfaces I was wondering if implementing interfaces will take into account inheritance. That is, can inherited methods be used to follow an interface's structure? <?php interface Auxiliary_Platform { public function Weapon (); public function Health (); public function Shields (); class T805 implements Auxiliary_Platform { public function Weapon () { var_dump ( __CLASS__ ); public function Health () { var_dump ( __CLASS__ . "::" . public function Shields () { var_dump ( __CLASS__ . "->" . class T806 extends T805 implements Auxiliary_Platform { $T805 = new T805 (); $T805 -> Weapon (); $T805 -> Health (); $T805 -> Shields (); echo "<hr />" ; $T806 = new T806 (); $T806 -> Weapon (); $T806 -> Health (); $T806 -> Shields (); Class T805 implements the interface Auxiliary_Platform. If the code were to be the same, but instead T805 (or T806) DOES NOT implement Auxiliary_Platform, then it'll still work. This seems to work in PHP5.2.9-2, PHP5.3 and PHP5.3.1 (my current versions). We could also do the opposite: class T805 {
QuickRef.org - all your docs are belong to us - PHP, Perl, CSS, HTML, Java, JavaScript, MySQL, Ruby, Python, and more Codeoptimierung:Wächter - PHP.de Wiki Das alternative Wächterprinzip macht sich die Logik zunutze, dass eine nicht erfüllte Bedingung 1 ja zwangsläufig zur Ausführung des zweiten Blocks führt. Also Wenn Bedingung 1: Führe Block 1 aus Verlasse die Bedingungsprüfung Führe Block 2 aus Beispiel 1 Im Vergleich: Ein Wertebereich soll durchlaufen werden und für alle enthaltenen Datensätze angeben, on sie 1 sind oder nicht. Pseudocode: Bsp. 1, klassischer Ansatz, Pseudocode Schleifendurchlauf Ist Wert = 1: Schreibe "key ist 1" Sonst: Schreibe "key ist ungleich 1" Bsp. 1, alternativer Ansatz, Pseudocode Schleifendurchlauf Ist Wert = 1: Schreibe "key ist 1" nächstes Schleifenelement Schreibe "key ist ungleich 1" Bsp. 1, klassischer Ansatz, PHP Umsetzung foreach ( $array as $key => $value ) { // positiver Bedingungszweig if ( $value == 1 ) { echo $key . ' ist 1<br>' ; } // negativer Bedingungszweig else { echo $key . ' ist ungleich 1<br>' ; } } Bsp. 1, alternativer Ansatz, PHP Umsetzung Beispiel 2 Bsp. 2, klassischer Ansatz, Pseudocode