2019年11月

前言

简单展示一下php面向对象,使用PDO连接mysql数据库,把数据库读取的数据映射到我们的对象

常识部分

和 JAVA 的感觉差不多,通过class+类名来定义一个类
然后在里面写变量,例如我们定义一个 Person(人) 类, 然后给他一个$realname(真实姓名)
用 public function 来定义方法,一个 get 一个 set , 具体看下面的示例文件吧,
用 Phpstorm 可以按住 alt+insert 来快速生成 get,set

示例文件 [Person.php]

<?php
class Person
{
public $realname;

    /**
     * @return mixed
     */
    public function getRealname()
    {
        return $this->realname;
    }

    /**
     * @param mixed $realname
     */
    public function setRealname($realname): void
    {
        $this->realname = $realname;
    }
}

类的基本构建

在 phpstorm 里可以alt+insert快速插入一个 constructor(构建器) 你也可以自己手动输入
public function __construct 然后后面是你的参数

例如:(是用的本文下面 User类的例子)

public function __construct($username, $birthday)
{
    $this->username = $username;
    $this->birthday = $birthday;
}

类的继承

使用 extends 可以进行类的继承,比如我们新建一个User(用户)类,然后继承Person类, 就是class User extends Person,
记得在开始require你的Person类,将类引入.

require和include区别?
incluce 在用到时加载
require 在一开始就加载
_once 后缀表示已加载的不加载

当想获取父类值时,我这里返回了父类的方法(刚开始学不知道对不对..)
如:return parent ::getRealname();

示例文件 [User.php]

<?php
require 'Person.php';

class User extends Person
{
public $username;
public $birthday;



    public function getRealname()
{
    return parent::getRealname(); // TODO: Change the autogenerated stub
}

    /**
     * @param mixed $realname
     */
    public function setRealname($realname): void
    {
        $this->realname = $realname;
    }

    /**
     * @param mixed $username
     */
    public function setUsername($username): void
    {
        $this->username = $username;
    }

    /**
     * @return mixed
     */
    public function getUsername()
    {
        return $this->username;
    }

}

PDO连接数据库映射对象

fetchALL中fetch class,后面参数跟上类名
在下面的示例中,我们使用了上面的Person和User类
将fetch到的结果(是个数组)给了$row这个变量;
然后循环输出所有的结果

参考文件 [index.php]

<?php

require 'User.php';

$link=new PDO('mysql:host=主机地址;dbname=数据库名','数据库用户名','数据库密码');

$row=$link->query('select * from users')->fetchAll(PDO::FETCH_CLASS,'User');

$i=0;
$row[0]->setRealname('张小明');
echo '<br>';
echo $row[0]->getRealname();

while ($i<count($row)){
    echo $row[$i]->username.'<br>';


    echo $row[$i]->birthday.'<br>';
    echo $row[$i]->gender.'<br>';
    $i++;
}


$just_test=new User();

$just_test->setRealname("你好");

echo $just_test->getRealname();
echo '<br>';
$just_test->setUsername("nihao");
echo $just_test->getUsername();

参考

PDO和MySQLi区别与选择?
类的自动加载
构造函数和析构函数

简单的面向对象:

<script>

    function Person() {
        this.realname="Person RealName";
    }

    function User(username,birthday,gender) {

        Person.apply(this,arguments);
        this.username=username;
        this.birthday=birthday;
        this.gender=gender;

    }
    User.prototype.getUsername=function () {
        return "name is :"+this.username;
    };

    function h() {
        User.prototype=new Person();
        let justmyvar=new User("小明",1573525293,1);
        let anothervar=new User("小红",1573525093,0);

        justmyvar.realname="张啸明";
        console.log(justmyvar.realname);
        console.log(anothervar.realname);

    }
</script>

参考:
Javascript 面向对象编程(一):封装
JavaScript面向对象简介

0.前言

最近在搜索引擎分析的关键词中看到 VPS玩法 这个关键词 引入本站的流量比较多, 所以决定分享一下服务器的几个小用途
如果你对下面的项目感兴趣,但是又没有自己的服务器, 那么你可以
1.在本地通过虚拟机安装一个,下面的项目都同样适用 |优缺点:免费,但分享给别人较为麻烦
2.购买一个服务器(博主很推荐 vultr)|优缺点:分享简单,收费

(不介意的话走个分享链接,这样咱俩都能get到一些经费,来,一举两得啊)

1.gitlab (代码库)

gitlab 想必大家对github都很熟悉,它是一个十分方便的平台, 我们可以在本地服务器上搭建一个gitlab,这样你的代码完全由你来管理,也不怕github哪天没了然后你的代码丢了

CentOS7 安装gitlab教程

2.wakatime 展示界面

wakatime wakatime是一个记录你使用IDE, 语言时间的平台, 官方所给的服务器如果不开prime 则代码活动时间只能记录30天, 所以我们可以通过开源的项目(连接)来搭建一个自己的wakatime服务器, 再自己写一些代码来将这些数据可视化地展示出来 , 这样就可以清楚地看到自己一年浪费,啊不..学习了多长时间

3.各种API服务器

比如各种数据可以通过json传值来实现不同功能, 比如android app中的更新功能,可以通过在数据库建立版本信息表,然后通过php写api接口来实现,而服务器正好提供了我们所需要的环境

4.博客(VPS必做啊):

很多人有了服务器, 就开始搭建各种博客, 博主我有一个建议: 选一种博客, 重要的是,要坚持写内容
有老话说的好,重在内在, 一个博客, 不单需要界面也需要内容,二者结合才是一个好博客
(就算是写给自己看的了~XD)
在服务器上就可以随时随地在任何连网设备上写博客了,(就算没联网也可以先写到记事本上,就像这个文章一样..有网了再发出去嗯嗯)

5.自定义界面的画册/画板

像博主这样喜欢画画的, 一定要能够保存好自己的画啊,通过建立数据库, 然后写一个漂亮的HTML网页(戳这里连接), 多么完美啊.
然后写一个自己的画板,用着顺手毕竟是自己做出来的嘛,涂鸦很方便

6.自定义界面的音乐历史

像博主这样在学弹琴的,可以把自己弹琴的录音做成一个时间轴(连接),一目了然,多么完美啊