Du hast ja kein Schreibzugriff.
Wenn Du allerdings verhindern willst, dass jemand zB über "plugins" zu Deinem Tool via print_r ein private $password lesen kann,
dann wäre wohl static die Lösung.
Bsp Sql:
PHP
class Sql
{
public
$host = 'localhost',
$database_name = 'database_name';
private static
$password = 'passwordxy';
}
echo "<pre>";
$Sql = new Sql;
print_r($Sql);
/*
Sql Object
(
[host] => localhost
[database_name] => database_name
)
*/
var_dump($Sql);
/*
object(Sql)#1 (2) {
["host"]=> string(9) "localhost"
["database_name"]=> string(13) "database_name"
}
*/
print_r($Sql::$password);
/*
Fatal error: Cannot access private property Sql::$password in
*/
var_dump($Sql::$password);
/*
Fatal error: Cannot access private property Sql::$password in
*/
print_r($Sql->password);
/*
Fatal error: Cannot access private property Sql::$password in
*/
var_dump($Sql->password);
/*
Fatal error: Cannot access private property Sql::$password in
*/
echo "<pre>";
Alles anzeigen
BTW: aufpassen bei static:
PHP
class Sql
{
public
$host = 'localhost',
$database_name = 'database_name';
private static
$password = 'passwordxy';
public function setPassword($password)
{
self::$password = $password;
}
public function getPassword()
{
return self::$password;
}
}
$A = new Sql;
$A->setPassword('password set 1');
echo $A->getPassword(); // password set 1
$B = new Sql;
echo $B->getPassword(); // password set 1
$B->setPassword('password set 2');
echo $B->getPassword(); // password set 2
echo $A->getPassword(); // password set 2 <----
Alles anzeigen
Mehrere Objekte der gleichen Klasse nutzen static Eigenschaften gemeinsam.