Php Can';t在类中使用$this赋值
我有这样的课Php Can';t在类中使用$this赋值,php,class,Php,Class,我有这样的课 分类{ 公众$token; 公共函数名称a() { $this->token='value'; } 公共函数名称b(){ echo$this->token; } } $ok=新事物(); $ok->nameB()在赋值之前必须调用nameA(),这里的标记为空。在赋值之前必须调用nameA(),这里的标记为空。如果要在类中使用自然构造函数方法,那么代码就可以了 Class something{ public $token; public function __c
分类{
公众$token;
公共函数名称a()
{
$this->token='value';
}
公共函数名称b(){
echo$this->token;
}
}
$ok=新事物();
$ok->nameB()
在赋值之前必须调用nameA()
,这里的标记为空。在赋值之前必须调用nameA()
,这里的标记为空。如果要在类中使用自然构造函数方法,那么代码就可以了
Class something{
public $token;
public function __construct()
{
$this->token = 'value';
}
public function nameB(){
echo $this->token;
}
}
$ok = new something();
$ok->nameB();
如果在类中使用自然构造函数方法,那么代码就可以了
Class something{
public $token;
public function __construct()
{
$this->token = 'value';
}
public function nameB(){
echo $this->token;
}
}
$ok = new something();
$ok->nameB();
属性
$token
在给定值之前为空
在您的类中,发生这种情况的唯一方法是调用nameA
方法,或者直接操作属性,因此您需要首先执行以下操作:
Class something{
public $token;
public function nameA()
{
$this->token = 'value';
}
public function nameB(){
echo $this->token;
}
}
$ok = new something();
$ok->nameA(); //<--sets property
//or direct manipulation: $ok->token = 'blah';
$ok->nameB(); //<-- reads and outputs it
属性
$token
在给定值之前为空
在您的类中,发生这种情况的唯一方法是调用nameA
方法,或者直接操作属性,因此您需要首先执行以下操作:
Class something{
public $token;
public function nameA()
{
$this->token = 'value';
}
public function nameB(){
echo $this->token;
}
}
$ok = new something();
$ok->nameA(); //<--sets property
//or direct manipulation: $ok->token = 'blah';
$ok->nameB(); //<-- reads and outputs it
因为
新事物()
不会自动为您运行nameA()
;除非调用nameA()
,否则token
属性的值为空,因为newsomething()
不会自动为您运行nameA()
;除非调用nameA()
first从技术上讲,他们已经将token
设置为公共类成员-您可以通过$ok->token=“fred”操作它;echo$ok->token//打印“fred”
该类没有以任何方式进行封装。这是可行的,但是除了使用u construnt(),是否还有其他方式可以插入值?对于您的代码,您需要首先调用nameA()
从技术上讲,他们已经将令牌设置为公共类成员-您可以通过$ok->token=“fred”;echo$ok->token;//打印“fred”
该类未以任何方式封装。回答不错-与“最快手指优先”效果不符…回答不错-与“最快手指优先”效果不符。。。