php-更改类的另一个实例中的值数组
我正在玩一些php,我发现自己在想一些事情php-更改类的另一个实例中的值数组,php,arrays,Php,Arrays,我正在玩一些php,我发现自己在想一些事情 <?php class license { public $v=array('product'=>"babab"); function blah($b) { if (//code) { //code } } 如何更改$v数组中产品的值 我希望我说得很清楚。既然您将它声明为public,任何人都可以向它写入该类的实例 $c-&
<?php
class license
{
public $v=array('product'=>"babab");
function blah($b)
{
if (//code)
{
//code
}
}
如何更改$v数组中产品的值
我希望我说得很清楚。既然您将它声明为public,任何人都可以向它写入该类的实例
$c->v = array('key', 'value');
您可以将其更改为所需的任何数据类型
$c->v = new MyObject();
$c->v = NULL;
$c->v = FALSE;
$c->v = 1;
但是,如果您说您希望创建一个额外的许可证对象并能够更改属性的值,那么您将无法使用现有的体系结构。singleton设计模式解决了这个问题
class License {
private static $instance;
private $v;
private function __construct() {}
private function __clone() {}
public static function getInstance() {
if(!isset(self::$instance)) {
self::$instance = new static();
}
return self::$instance;
}
public function setV($data) {
$this->v = $data;
}
public function getV() {
return $this->v;
}
}
$license = License::getInstance();
$license->setV(array("key" => "value"));
var_dump($license->getV());
$license2 = License::getInstance();
var_dump($license == $license2);
// true
由于您将其声明为public,因此任何人都可以向其写入该类的实例
$c->v = array('key', 'value');
您可以将其更改为所需的任何数据类型
$c->v = new MyObject();
$c->v = NULL;
$c->v = FALSE;
$c->v = 1;
但是,如果您说您希望创建一个额外的许可证对象并能够更改属性的值,那么您将无法使用现有的体系结构。singleton设计模式解决了这个问题
class License {
private static $instance;
private $v;
private function __construct() {}
private function __clone() {}
public static function getInstance() {
if(!isset(self::$instance)) {
self::$instance = new static();
}
return self::$instance;
}
public function setV($data) {
$this->v = $data;
}
public function getV() {
return $this->v;
}
}
$license = License::getInstance();
$license->setV(array("key" => "value"));
var_dump($license->getV());
$license2 = License::getInstance();
var_dump($license == $license2);
// true
可以按类对象更改公共类属性,如下所示: 现场演示:
可以按类对象更改公共类属性,如下所示: 现场演示:
它应该像
$c->$v[product]=“new key”
一样简单,就像$c->$v[product]=“new key”
你们都给了我答案,但你们先回答了=]谢谢。你们都给了我答案,但你们先回答了=]谢谢。