Max*_*vis 7 php scope class function
在使用PHP类时,我注意到在类中,当我在函数中将变量定义为"$ this-> variablename方式"中该类的属性时,它会自动成为该类的公共变量.
class example {
public function setstring() {
$this->string = "string";
}
}
Run Code Online (Sandbox Code Playgroud)
以便
$class = new example();
echo $class->string;
Run Code Online (Sandbox Code Playgroud)
输出:字符串;
但是,如果我想创建只能访问类内部函数的私有变量,那么无论如何只能在函数setstring()内部声明它们吗?而不是像这样将它们声明为函数之外的私有.
class example {
private $string ='';
public function setstring() {
$this->string = "string";
}
}
Run Code Online (Sandbox Code Playgroud)
有人可能这样做的原因是为了整洁,以免在类的开始时声明一长串私有变量.
不,没有办法做到这一点.
在PHP中,通常使用自记录注释按字母顺序在函数上声明所有类/实例属性.这是编写类的最"整洁"和清晰的方法.还建议您根据需要使用getter和setter完全避免使用公共属性.
PHP的规范编码风格在PSR-1和PSR-2中定义.我还建议您查看PHPDoc.
请记住,在类方法范围内声明的变量将是该方法的私有变量.如果您打算从其他方法访问它,则只需要一个类属性.
<?php
class Example {
/**
* Holds a private string
* @var string
*/
private $string = '';
/**
* Sets the private string variable
*/
public function setString() {
$this->string = 'This string is accessible by other methods';
$privateVar = 'This string is only accessible from within this method';
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6580 次 |
| 最近记录: |