<?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