1、php类中,假设所有的属性与方法的可见性为public,那么在外部访问类的方法或属性时,都必须通过对象【类的实例化过程】来调用。
eg:
class Log
{
public $root = DIRECTORY_SEPARATOR;
public $logPath = '/data/app/www/test-realtime.monitoring.c.kunlun.com/log';
public $defaultDir = 'default';
public function writeLog($logName, $logType, $data, $newDir = FALSE)
{
$fileName = '';
if (!file_exists($this->logPath))
{
mkdir($this->logPath, 0777);
}
if ($newDir !== FALSE)
{
@mkdir($this->logPath.$this->root.$newDir, 0777);
$fileName = $this->logPath.$this->root.$newDir.$this->root.date('Y-m-d', time()).'_'.$logName.'_'.$logType.'.log';
}
else
{
@mkdir($this->logPath.$this->root.$this->defaultDir, 0777);
$fileName = $this->logPath.$this->root.$this->defaultDir.$this->root.date('Y-m-d', time()).'_'.$logName.'_'.$logType.'.log';
}
file_put_contents($fileName, date('Y-m-d H:i:s').' '.$data."\n", FILE_APPEND);
}
}
类的实例化对象的过程:$logObj = new Log();
访问类中的方法:$logObj->writeLog($param1, $param2, $param3, $param4);
访问类中的属性:echo $logObj->root;
2、如果类中的属性前被static关键字修饰时,就不能通过对象来访问被static修饰的属性,但如果是类中的方法被static修饰时则即可以通过对象也可以通过类名::方法名的方式来进行访问。
3、如果类中的方法被static修饰则,方法中不能用$this,$this指的是类的实例化对象,由于静态方法不用通过对象就可以调用,所以伪变量$this不可用。