misterunknown: Javascript syntaktisch übertragen

Moin,

ich habe auf meiner privaten Homepage ein Skript für das Vergrößern und Verkleinern von Bildern eingebaut. Das Javascript dazu hat folgende Struktur (abgeguckt vom Tool "Highslide"):

if(!mdl){  
	var mdl = {  
		warten :  
			function (wartesekunden) {  
			 [...]  
			},  
		showPic :  
			function (...) {  
				...  
			},  
		...  
	}  

Aufrufen lassen sich die Funktionen dann mit "mdl.warten(2)" oder "mdl.showPic(bla.jpg...)".

Kann ich das in PHP übertragen oder ist das bei PHP prinzipiell nicht möglich? 1:1 kopieren funktioniert nicht :)

Grüße Marco

  1. Kann ich das in PHP übertragen oder ist das bei PHP prinzipiell nicht möglich? 1:1 kopieren funktioniert nicht :)

    PHP ist zwar eine C-Ähliche Sprache, aber diese JavaScript-Objekt-Notationsform ist JavaScript-spezifisch

    Du kannst das aber sehrwohl in eine Klasse überführen.

    class mdl {  
      function warten(wartesekunden) {  
      },  
      
      function showpic(...) {  
      }  
    }  
      
    $foo = new mdl;  
    $foo->showPic(bla.jpg...);
    

    http://php.net/manual/en/language.oop5.basic.php

    Natürlich kannst du die Funktionen/Methoden/Properies auch explizt als  public, protected oder private deklarieren.

    In keinem Fall wirst du aber mit PHP ein Popup am Client öffnen können.

    1. Moin,

      PHP ist zwar eine C-Ähliche Sprache, aber diese JavaScript-Objekt-Notationsform ist JavaScript-spezifisch

      Ok, dann weiß ich bescheid.

      Du kannst das aber sehrwohl in eine Klasse überführen.

      class mdl {

      function warten(wartesekunden) {
        },

      function showpic(...) {
        }
      }

      Das werde ich jetzt auch machen.

      $foo = new mdl;
      $foo->showPic(bla.jpg...);

      
      > Natürlich kannst du die Funktionen/Methoden/Properies auch explizt als  public, protected oder private deklarieren.  
      > In keinem Fall wirst du aber mit PHP ein Popup am Client öffnen können.  
      
      Das ist mir bewusst. Ich will die Struktur auch nicht, weil ich die Javascript-Funktionen portieren will, sondern weil ich in der Uni am Lehrstuhl eine Internetseite zu betreuen habe, deren System nicht durchschaubar ist. Ich weiß also nicht, welche Funktionsnamen ich nicht belegen darf, weil die Seite sonst nicht mehr funktioniert. Also dachte ich mir, ich mache eine Variable, über die ich dann die Funktionen aufrufe, eben nicht "vorlage();" sondern eben "mdl.vorlage();".  
        
      Aber dann mach ich das jetzt mit ner Klasse, wollte sowieso mit OOP anfangen.  
        
      Grüße Marco
      
  2. php ist aber was ganz anderes als JavaScript, das weißt du?
    In den meisten Fällen dürfte Code der in einer Sprache funktioniert, in der anderen nicht sinnvoll sein. Einfach weil das Ziel von Code in beiden Sprachen ein ganz anderer ist.

    1. php ist aber was ganz anderes als JavaScript, das weißt du?
      In den meisten Fällen dürfte Code der in einer Sprache funktioniert, in der anderen nicht sinnvoll sein. Einfach weil das Ziel von Code in beiden Sprachen ein ganz anderer ist.

      Das kann man so nicht stehen lassen.

      Komplette Programmroutinen werden sich zwar nicht 1:1 portieren lassen, wohlaber einzelne Funktionen oder Programmteile.

      Dass PHP welches am Server läuft niemals ein Popup im Browser ausgeben wird ist vermutlich genauso klar wie die tatsache, dass JavaScript welches am Client läuft niemals im Filesystem des Servers herumgraben kann.

      Einfache Algorithmen lassen sich zwischen den beiden Sprachen ohne große Probleme herumportieren - einfach gesagt müssen nur ein paar Dollar-Zeichen vor die Variablen und fertig ist die Sache.

      function summe(a, b) {  
        return a+b;  
      }  
        
      document.write(summe(1, 4));
      
      function summe(a, b) {  
        return $a+$b;  
      }  
        
      echo summe(1, 4);
      

      Natürlich stößt man irgendwann ein seine Grenzen - ein window.open wird man in PHP einfach nicht finden.

      1. Einfache Algorithmen lassen sich zwischen den beiden Sprachen ohne große Probleme herumportieren - einfach gesagt müssen nur ein paar Dollar-Zeichen vor die Variablen und fertig ist die Sache.

        Klar das stimmt schon. Nur klang die Frage eher als wollte der Fragende evtl. ein ganzes Projekt portieren und da wäre das Verständnis dann schon wichtig.