关于php中的OOP
我正在重新学习OOP编程 在PHP中 我一直错误地认为类def中的所有变量都不是静态的 必须继续使用$this->。我最终在变量命名冲突中绊倒了自己 我现在正在重新学习php OOP的方法 我现在的问题是: 是否可以将带有$this->的方法属性集标记为public、private或protected 我已经做到了关于php中的OOP,php,oop,Php,Oop,我正在重新学习OOP编程 在PHP中 我一直错误地认为类def中的所有变量都不是静态的 必须继续使用$this->。我最终在变量命名冲突中绊倒了自己 我现在正在重新学习php OOP的方法 我现在的问题是: 是否可以将带有$this->的方法属性集标记为public、private或protected 我已经做到了 class _DEMO { private $this->someVar = 'whatever'; } 我得到一个语法错误。
class _DEMO
{
private $this->someVar = 'whatever';
}
我得到一个语法错误。
然后:
class\u演示
{
公共函数构造(元ip)
{
$this->ip=$\u ip;//当然,您可以:
class MySampleClass {
/**
* @var string
*/
private $aStringVariable;
/**
* @param string $anIP
*/
protected function __construct( $anIP ) {
$this->aStringVariable = $anIP;
}
}
// How to use the class
$myClassObject = new MySampleClass( '192.168.0.1' );
您可能希望下载PHP IDE的eval版本。IDE可能会有所帮助,因为它会在您键入时指出错误,并且PHPStorm提供自动完成功能
另外,请查看。提供了有价值的信息。属性在类的开头声明,如:
public $property1;
private $property2;
protected $property3;
那么
1.可以从同一类的任何方法访问所有属性,如$this->property
。
2.$property1
可以从任何类中的所有方法访问。
3.$property2
可以从同一类中的所有方法访问。
4.$property3
可以从同一类中的所有方法以及扩展同一类的类访问。
例如,您可以通过公共方法访问私有财产:
class A {
private $property;
public function getProperty() {
return $this->property
}
然后,在控制器中,您可以执行以下操作:
$obj = new A;
$property = $obj->getProperty();
但不是:
$obj = new A;
$property = $obj->property;
下面是一个使用属性的简单示例
class HelloProperty{
private $mySimpleProperty;
public function setSimpleProperty($mySimpleProperty){
$this->mySimpleProperty = $mySimpleProperty;
}
public function getSimpleProperty(){
return $this->mySimpleProperty;
}
}
$obj = new HelloProperty();
$obj->setSimpleProperty('Hello Property');
echo $obj->getSimpleProperty();
:)你需要学习PHP语法规则。如果你学习过,你就会知道为什么你的第一个代码片段永远不会工作。不要在声明时使用$this->
,它已经隐含了(class foo{private$someVar;}
$obj = new A;
$property = $obj->property;
class HelloProperty{
private $mySimpleProperty;
public function setSimpleProperty($mySimpleProperty){
$this->mySimpleProperty = $mySimpleProperty;
}
public function getSimpleProperty(){
return $this->mySimpleProperty;
}
}
$obj = new HelloProperty();
$obj->setSimpleProperty('Hello Property');
echo $obj->getSimpleProperty();