作为程序员一定要保持良好的睡眠,才能好编程

一个遵循psr-4的类文件代码

发布时间:2018-04-11

<?php

namespace app\Controller;

use core\Controller;

class UserController extends Controller{
	public $username;
	public $age;
	private $code; //身份证code

	const ADDRESS="河北省";  // self::ADDRESS;

	//如果有多个参数,第一个参数后紧接“,” ,再加一个空格
	public function __construct($username, $age, $code){
		$this->username=$username;
		$this->age=$age;
		$this->code=$code;
	}

	//常用注释的标签有 @package  @var  @return  @author  @todo  @throws

	public function __set($key, $val){
		$this->$key=$val;
	}

	public function __get($key){
		return $this->$key;
	}

	//如果参数有默认值,“=”左右各有一个空格分开
	public function info($message = "请输入对应的信息"){
		return $this->username." -- ".$message;		
	}

	/**当用到抽象(abstract)和终结(final)来做类声明时,它们必须放在可见性声明 (public 
	还是protected还是private)的前面*/
	abstract public function read();

	/**当用到抽象(abstract)和终结(final)来做类声明时,它们必须放在可见性声明 (public 
	还是protected还是private)的前面*/
	final public function final_fun($message){
		return $this->age." 这是一个不能被修改的方法";
	}

	//而当用到静态(static)来做类声明时,则必须放在可见性声明的后面
	public static function say(){
		return "小明说他今年22岁了,身份证号是 1101021000000000";
	}

	//判断年龄是中年还是青年   //方法名(method name) 必须使用驼峰式(cameCase)写法。
	public function ageInfo(){
		if($this->age>25) { //花括号前面一个空格

		} else { //else 左右各一个空格

		}
	}

}



抽象类中的方法可以有实现,


有抽象方法的类一定是抽象类


抽象类中不一定有抽象方法


看实例:

<?php

 

abstract class UserController{
	public $username;
	public $age;
	private $code; //身份证code

	const ADDRESS="河北省";  // self::ADDRESS;

	//如果有多个参数,第一个参数后紧接“,” ,再加一个空格
	public function __construct($username, $age, $code){
		$this->username=$username;
		$this->age=$age;
		$this->code=$code;
	}

	//常用注释的标签有 @package  @var  @return  @author  @todo  @throws

	public function __set($key, $val){
		$this->$key=$val;
	}

	public function __get($key){
		return $this->$key;
	}

	//如果参数有默认值,“=”左右各有一个空格分开
	public function info($message = "请输入对应的信息"){
		return $this->username." -- ".$message;		
	}

	/**当用到抽象(abstract)和终结(final)来做类声明时,它们必须放在可见性声明 (public 
	还是protected还是private)的前面*/
	abstract public function read();

	/**当用到抽象(abstract)和终结(final)来做类声明时,它们必须放在可见性声明 (public 
	还是protected还是private)的前面*/
	final public function final_fun($message){
		return $this->age." 这是一个不能被修改的方法";
	}

	//而当用到静态(static)来做类声明时,则必须放在可见性声明的后面
	public static function say(){
		return "小明说他今年22岁了,身份证号是 1101021000000000";
	}

	//判断年龄是中年还是青年   //方法名(method name) 必须使用驼峰式(cameCase)写法。
	public function ageInfo(){
		if($this->age>25) { //花括号前面一个空格
			return "中年";
		} else { //else 左右各一个空格
			return "青年";
		}
	}

}


class StudentController extends UserController{

	public function __construct($username,$age,$code){
		parent::__construct($username,$age,$code);
	}

	public function read(){
		return "这是一个实现在父类read方法的子类:".$this->username;
	}

}
$user=new StudentController("james",22,"13012822");

echo $user->read();

/*$user=new UserController("james",22,"13012822");

var_dump($user->age);
var_dump($user->code);*/

运行结果:

这是一个实现在父类read方法的子类:james