抽象类抽象方法
// 使用场景:子类继承了父类, 并且必须实现父类的某些方法 时使用
# 格式: abstract
# 注意: 类为抽象类时;不能实例化对象调用方法和属性,类本身也不能自身调用属性和方法。
<?php
abstract class Peole {
protected static $className = '大三老学长';
//抽象方法
abstract public function learn();
public function getClassName(){
echo '他是'.self::$className;
}
}
class Woman extends Peole {
public function getName(){
echo '子类不能重写父类';
}
public function learn(){
echo '有阅读的能力';
}
}
// 类为抽象类时不能实例化对象,也不能自己调用自己
// $hj = new Peole();
// $hj->getName();
// echo "<hr/>";
// $hj->getClassName();
class Woman extends Peole {
public function getName(){
echo '子类不能重写父类';
}
public function learn(){
echo '有阅读的能力';
}
}
$woman = new Woman();
$woman->getName();
$woman->learn();
我用alert弹出的中文显示乱码,本地测试是Ok的
这是原来的代码:
exit("<script charset='UTF-8'>alert(\"留言成功!\");location.href='".$_SERVER["HTTP_REFERER"]."'</script>");
然后改成了下面这句就不再乱码了
echo '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>提示</title><script language=javascript>alert("留言成功!");location.href="'.$_SERVER["HTTP_REFERER"].'"</script></head></html>';
再补充一下phpmailer发送邮件出现标题或者内容或者提示信息出现中文乱码的情况
最好是按照业务垂直拆分出分表 。把user表中跟认证相关的业务拆分出来 ,变成独立的表 ,这样既能减小user表的容量 ,又能方便的进行扩展字段 , 例如下面的表
local_auth表
id user_id username telphone email password
third_oauth表
id user_id oauth_id oauth_type refresh_token
user表
id age sex birth ....
上面把本地认证表和第三方oauth认证表与user信息表进行了拆分 , 这样如果是用手机 ,邮箱 , 用户名 登陆,就去查询local_auth表 ,再去查询user表
如果是第三方认证登陆 , 就根据第三方的oauth_id ,认证查询third_oauth表 ,不同的第三方根据oauth_type进行区分 , 再去查询user表