header Location in while Schleife?
bearbeitet von Raketenwilli> Und nochwas, darf ich Eigenschaften jederzeit überschreiben?
>
> ~~~ php
> $pdf = new(klassenaufruf);
> $pdf->name = "Heinz";
> ...
> ...
> ...
> $pdf->name = "doch lieber Hans";
> ~~~
>
> Bastian
Das kommt darauf an, wie die Klasse definiert ist
Steht da:
~~~PHP
class foo {
protected name="";
#…
}
~~~
Dann kannst Du das nicht. Es sei denn Du hast einen `setter`, bzw. `getter`:
~~~PHP
<?php
# file: foo.class.php
class foo {
protected $name;
function __construct( $s = "Foo" ) {
$this -> setName( $s );
}
function setName( $s ) {
$s = trim( $s );
if ( $s ) {
$this->name = trim( $s );
return true;
} else {
return false;
}
}
function getName() {
return $this -> name;
}
}
~~~
Dann kannst Du das wie folgt machen:
~~~PHP
<?php
require_once( 'foo.class.php' )
$f = new foo ('Bastian');
echo $f -> getName() . PHP_EOL;
$f -> setName( 'Hans' );
echo $f -> getName() . PHP_EOL;
$f -> setName( 'Willi' );
echo $f -> getName() . PHP_EOL;
# Bastian
# Hans
# Willi
~~~
**Vorteil:** Du kannst die übergebenen Werte prüfen ( `if()` ) und ggf. verändern (` trim()` ).
**Hast Du aber:**
~~~PHP
class foo {
public $name;
}
~~~
Dann kannst Du das „jederzeit“ - ohne eine Prüfung zu erzwingen.
~~~PHP
$f = new foo;
$f -> name = 'Bastian';
echo $f -> name . PHP_EOL;
$f -> name = 'Hans';
echo $f -> name . PHP_EOL;
$f -> name = 'Willi';
echo $f -> name . PHP_EOL;
# Bastian
# Hans
# Willi
~~~
Die Variante 2 sieht einfacher aus, öffnet aber „jeder Menge Mist“ Tür und Tor. Oft will man genau das gerade nicht haben. **Das wirst Du schon noch merken...**
header Location in while Schleife?
bearbeitet von Raketenwilli> Und nochwas, darf ich Eigenschaften jederzeit überschreiben?
>
> ~~~ php
> $pdf = new(klassenaufruf);
> $pdf->name = "Heinz";
> ...
> ...
> ...
> $pdf->name = "doch lieber Hans";
> ~~~
>
> Bastian
Das kommt darauf an, wie die Klasse definiert ist
Steht da:
~~~PHP
class foo {
protected name="";
#…
}
~~~
Dann kannst Du das nicht. Es sei denn Du hast einen `setter`, bzw. `getter`:
~~~PHP
<?php
# file: foo.class.php
class foo {
protected $name;
function __construct( $s = "Foo" ) {
$this -> setName( $s );
}
function setName( $s ) {
$s = trim( $s );
if ( $s ) {
$this->name = trim( $s );
return true;
} else {
return false;
}
}
function getName() {
return $this -> name;
}
}
~~~
Dann kannst Du das wie folgt machen:
~~~PHP
<?php
require_once( 'foo.class.php' )
$f = new foo ('Bastian');
echo $f -> getName() . PHP_EOL;
$f -> setName( 'Hans' );
echo $f -> getName() . PHP_EOL;
$f -> setName( 'Willi' );
echo $f -> getName() . PHP_EOL;
# Bastian
# Hans
# Willi
~~~
**Vorteil:** Du kannst die übergebenen Werte prüfen ( `if()` ) und ggf. verändern (` trim()` ).
**Hast Du aber:**
~~~PHP
class foo {
public $name;
}
~~~
Dann kannst Du das „jederzeit“ - ohne eine Prüfung zu erzwingen.
~~~PHP
$f = new foo;
$f -> name = 'Bastian';
echo $f -> name . PHP_EOL;
$f -> name = 'Hans';
echo $f -> name . PHP_EOL;
$f -> name = 'Willi';
echo $f -> name . PHP_EOL;
# Bastian
# Hans
# Willi
~~~
Die Variante 2 sieht einfacher aus, öffnet aber „jeder Menge Mist“ Tür und Tor. Oft will man genau das gerade nicht haben.
header Location in while Schleife?
bearbeitet von Raketenwilli> Und nochwas, darf ich Eigenschaften jederzeit überschreiben?
>
> ~~~ php
> $pdf = new(klassenaufruf);
> $pdf->name = "Heinz";
> ...
> ...
> ...
> $pdf->name = "doch lieber Hans";
> ~~~
>
> Bastian
Das kommt darauf an, wie die Klasse definiert ist
steht da:
~~~PHP
class foo {
protected name="";
#…
}
~~~
Dann kannst Du das nicht. Es sei denn Du hast einen `settter`:
~~~PHP
<?php
# file: foo.class.php
class foo {
protected $name;
function __construct( $s = "Foo" ) {
$this -> setName( $s );
}
function setName( $s ) {
$s = trim( $s );
if ( $s ) {
$this->name = trim( $s );
return true;
} else {
return false;
}
}
function getName() {
return $this -> name;
}
}
~~~
Dann kannst Du das wie folgt machen:
~~~PHP
<?php
require_once( 'foo.class.php' )
$f = new foo ('Bastian');
echo $f -> getName() . PHP_EOL;
$f -> setName( 'Hans' );
echo $f -> getName() . PHP_EOL;
$f -> setName( 'Willi' );
echo $f -> getName() . PHP_EOL;
# Bastian
# Hans
# Willi
~~~
Vorteil: Du kannst die übergebenen Werte prüfen und ggf. verändern.
Hast Du aber:
~~~PHP
class foo {
public $name;
}
~~~
Dann kannst Du das „jederzeit“ - ohne eine Prüfung zu erzwingen.
~~~PHP
$f = new foo;
$f -> name = 'Bastian';
echo $f -> name . PHP_EOL;
$f -> name = 'Hans';
echo $f -> name . PHP_EOL;
$f -> name = 'Willi';
echo $f -> name . PHP_EOL;
# Bastian
# Hans
# Willi
~~~
Die Variante 2 sieht einfacher aus, öffnet aber „jeder Menge Mist“ Tür und Tor. Oft will man genau das gerade nicht haben.