Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] problem mit variablen bereich (https://www.delphipraxis.net/130256-%5Bphp%5D-problem-mit-variablen-bereich.html)

ghost007 5. Mär 2009 15:29


[PHP] problem mit variablen bereich
 
Ich bin in folgender situation:
Code:
class A{
 function test() {
  $test = $host;
  $test2 = $usr;
  [...]
  return $test;
 }
}
class B{
 function test_this() {
  $a = new A;
  $host = "host.de";
  $usr = "Ich";
  echo $this->a->test();
 }
}
Das dient nur zur veranschaulichung, ich will quasi in der function test test auf die variablen der funktion test_this zugreifen. Das geht aber nicht, desweiteren hab ich noch das problem, dass es in der funktion test_this zuviele variablen sind, sodass ich sie nicht als parameter übergeben möchte ...

nuclearping 5. Mär 2009 15:37

Re: [PHP] problem mit variablen bereich
 
$this->host

ghost007 5. Mär 2009 15:39

Re: [PHP] problem mit variablen bereich
 
Zitat:

Zitat von nuclearping
$this->host

Geht nicht und kann auch nich gehen, wenn man nachdenkt ... $this zeigt auf das objekt selber wenn ich also auf das objekt der class A zeige kann das nie und nimmer host als attribut haben.

quendolineDD 5. Mär 2009 15:55

Re: [PHP] problem mit variablen bereich
 
Er meinte wohl $this->host in Klasse B.
Du müsstest $host und $usr an die Funktion übergeben, ansonsten weiß es doch gar nicht, was es damit machen soll. Innerhalb von Klasse A sind diese ja unbekannt bzw. leer.

Code:
<?
class A{
function test($host, $usr) {
  $test = $host;
  $test2 = $usr;

  return $test;
}
}
class B{
function test_this() {
  $a = new A;
  $host = "host.de";
  $usr = "Ich";
  echo $a->test($host, $usr);
}
}

$b = new B;
$b->test_this();
?>
So klappt das dann auch :)

ghost007 5. Mär 2009 15:57

Re: [PHP] problem mit variablen bereich
 
HAb ich war schon in meinem ersten post geschreiben, aber ich kann die variablen nicht übergeben, weil es recht viele sind. Deshalb hab ich eine andere möglichkeit gesucht ...

quendolineDD 5. Mär 2009 16:37

Re: [PHP] problem mit variablen bereich
 
Dann übergeb der anderen Klasse einfach die eine Klasse als Referenzparamter, genauso wie du das wohl auch in Delphi machen würdest ;)

Code:
<?
class A
{
   function test ($class_b)
   {
      return $class_b->host;
   }
}

class B
{
var $host = "hoster.de";

   function test_this ()
   {
      $a = new A;
      echo $a->test ($this);
   }
}

$b = new B;
$b->test_this ();
?>
Getstet und funktioniert einwandfrei.

ghost007 5. Mär 2009 16:42

Re: [PHP] problem mit variablen bereich
 
okay, ich dachte zwar dass ich das schonma so gemacht hab ... awa irwie gehts nu >.<

mquadrat 6. Mär 2009 10:25

Re: [PHP] problem mit variablen bereich
 
und warum nicht ganz klassische?

Code:
class A {

   public $host;
   public $usr;

   function test() {
     $test = $this->host;
     $test2 = $this->usr;
     [...]
     return $test;
  }
}

class B{
 
  function test_this() {
    $a = new A;
    $a->host = "host.de";
    $a->usr = "Ich";
    echo $this->a->test();
  }
}
Alternativ natürlich auch gerne mit Getter/Setter Methoden. Da war ich jetzt nur zu faul für.

nuclearping 6. Mär 2009 10:41

Re: [PHP] problem mit variablen bereich
 
Zitat:

Zitat von mquadrat
und warum nicht ganz klassische? [...]

Yep, so meinte ich das auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz