11.6学习笔记

复习一下mysql语句:

查询单行?
select * from '表名' where id="值";

查询0,5?
select * from '表名' limit 0,5

查询满足用户名和密码匹配?
select * from admin where `username`='值' and `password`="值";

添加用户?
insert into `表名` values('值1','值2','值3'。。。)


删除用户?
delete from `表名` where id="值";


既要排序(降序)做前5条数据的查询?

select * from `表名` order by id desc limit 0,5;

oop思想 面向对象
面向对象 (Object)
(1)重用性、灵活性和扩展性


(2)万事万物皆对象

对象:人类

属性:姓名 年龄

方法:吃 喝 玩

(3) 声明一个类(对象)
class 类名{

}

$m = new 类名;//new :实例 实例化得到一个对象,后面的()是在没有参数的情况下是可要可不要。
var_dump($m);//返回的数据类型是object

对象返回的数据类型是object类型

类名:命名规则 (不能以数字开头,不要使用关键字,不要用中文命名,类名字首字母最好大写)

类名:不区分大小写,但是建议实例时跟你的类名一致 

(4)  属性:类的静态描述,相当于一个变量
      方法:类的动态描述,相当于一个函数


例子:
<?php
class Man{
//定义2个属性
public $name;//public公共的 访问修饰符
public $sex;

//定义方法
public function piao() //加上修饰符 没有加修饰符,默认也是public修饰符
{
echo ("在吃");

}
}

$m = new Man(); //实例化得到一个对象
$m->name="可爱"; //调用属性不加$符号
echo ($m->name); //输出属性的值
$m->sex ="男";
echo ($m->sex);
$m->piao(); //调用方法

?>


例子2:


class Man{
//定义属性
var $name; //定义属性 一定要有修饰符 (一般不建议用var这种方式定义)
var $sex;
//定义方法
public function show()
{
echo ("我在喝");

}


}
$m = new Man();
//var_dump($m);
$m->name="可爱";
echo ($m->name);
$m->show();


例子3:
$this :代表当前所操作的对象 $this->name:调用属性 不需要加$符号

<?php
class Man{
public $name;
public $sex;

public function show()
{
echo ($this->name."在玩");

}
public function display()
{
echo ($this->name."在玩");

}
}
$m= new Man();
$m->name = "可爱";
//echo ($m->name);
//$m->sex="女";
//echo ($m->sex);
$m->display();

?>


构造方法    

第一种构造方法 初始化调用构造方法   __construct() 

<?php
class Stus{
public $id;
public $name;

public function __construct($id,$name) //当实例化对象时就会初始化这个构造方法 (构造方法里面可以定义多个参数,参数与参数之间用,隔开,但是定义构造方法只能定义一次,构造方法里面参数没有默认值,当你实例化时你必须给没有默认值的参数传值过去,有默认值的参数就不需要传入值过去)
{
$this->id = $id;
$this->name = $name;

}

第二种构造方法写法  构造方法名跟类名一致

析构函数定义:__destruct() 一般不使用  public function __destruct() //析构函数定义 谁先调用谁就先被销毁 析构函数(无参数,无返回值,自动代用)

public function Stus($id,$name="可爱") //构造方法名跟类名一致(且构造方法名不区分大小写,但是建议与类名相同一致)
{
$this->id = $id;
$this->name = $name;

}

public function __destruct() //析构函数定义 谁先调用谁就先被销毁 析构函数(无参数,无返回值,自动代用)
{
echo ($this->name."谁被先销毁");

}


public function sleep()
{
echo($this->name."在睡觉");

}

}
$m = new Stus(1,"王旭");
//$m->id=1;
//$m->name="王三";
$m->sleep();


?>





属性值可以定义哪些值?
(1):字符串的值                                    不行: (1):算法不行
(2):整形的值                                                 (2):不能做字符串拼接
(3):可以定义数组                                         (3):逻辑运算不能定义
(4): 可以定义常量(define()   和  const)


<?php
class Man{
public $name="可爱"; //属性可以赋默认值
public $id;

public function display()
{
echo ("学号为".$this->id.$this->name."在学习");

}
}
$m = new Man();
$m->display();


?>

属性值权限:
外部属性值 > 内部属性值 > 属性默认值

<?php
class Man{
public $name="王三";

public function Man($name="蔡妍")
{
$this->name = $name;

}

public function show()
{
echo ($this->name."在玩");

}


}
$m = new Man("可爱");
$m->show();

?>

php面向对象 三大特性(封装 继承 多态)

单继承与多继承:php只支持单继承
继承关键字:extends

继承定义:继承是子类自动共享父类的数据结构和方法的机制,这是类之间的一种关系。子类可以在父类的基础上定义自己的属性与方法。

(1):子类继承了父类,拥有父类的所有属性和方法

(2) : php只支持单继承(只能有一个父类 )

(3):在子类中定义跟父类相同的函数,那这个方法叫重写(或者叫覆盖)

(4): 子类中定义的方法是自己拥有的

父类:
<?php
class F{
//定义一个父类
public $m = 1000;
public function show()
{
echo ("我有1000万");

}

}
//子类
class son extends F
{
public function show()
{
echo ("败家");

}

}

class sun extends son
{


}


$s = new son();
$s->show();

?>

final :最终

(1):final只能用来定义类或方法,不能用来定义属性。
(2):使用final关键字的类不能被继承。使用final关键字的方法不能被子类覆盖,是最终版本。
(3):定义:final 类名 / final 方法名()

例子:


<?php
class F{

final public function show()
{
echo ("有200万");

}


}

class Son extends F
{
public function show()
{
echo ("有300万了");
}

}
$s = new Son();
$s->show();

?>


修饰符访问权限 (访问修饰符可以定义在属性,也可以定义在方法)

public : 公共的 任何一个地方都可以访问 (默认属性和方法都是public公共的)
例子:
<?php
class Stus{
public $name;

public function show()
{
echo ($this->name."在学习");

}
}
$s = new Stus();
$s->name="张三";
echo $s->name;
$s->show();
?>


private :私有的 在类的本类中可以访问(类的类部访问)
例子:
<?php
class Stus{
public $name;
//私有的方法
private function show()
{
echo ($this->name."在睡觉");
}
public function display()
{
echo ("可爱去叫醒");
echo ($this->show());
}
}
$s = new Stus();
$s->name="王旭";
//$s->show();
$s->display();

?>


protected :受保护的 (在类的本类中可以调用,也可以在类的子类中调用)
例子:

<?php
class F{
protected function show()
{
echo ("拥有400万");
}
}
class Son extends F{
public function display()
{
echo ($this->show());
echo ("我自己也有200万");
}
}
$S = new Son();
$S->display();
?>

访问权限的:public > protected > private


魔术方法:
__get() //可通过判断权限让外部直接调用私有属性


__set() //可通过判断权限让外部给私有属性赋值

推荐使用 get() set()

例子:
<?php
class Stus
{
private $id;
public function Stus($id)
{
$this->id = $id;
}
/*public function __get($id) //get获取
{
return $this->id;
}
public function __set($id,$value)
{
$this->id = $value;
}*/
public function get()
{
return $this->id;
}
public function set($value)
{
$this->id = $value;
}
public function show()
{
//echo ($this->id);
echo("id的值");
}
}
$s = new Stus(1);
/*$s->id = 2;
echo ($s->id);
$s->show();*/
$s->set(2);
echo($s->get());



?>

static: 静态的

(1):类的静态变量,非常类似全局变量

static public $name; //定义静态属性 (static可以写在修饰符的前面也可以写在修饰符后面)

(2):属性设置了静态属性,那么代用的方法也要设置为静态方法


(3): $this->name : 非静态调用方式 (调用属性时不加$符号)

          self::$name : 静态成员属性调用方式 (调用静态属性时要加$符号)

(4):调用静态方法:类名::方法名();

(5):声明一个常量
const BASE_URL = "127.0.0.1";          const 取名字="值"

在方法里面调用常量 self::常量名

例子:

<?php
class Stus{
static public $name="张三"; //静态属性
static public function show()
{
//echo $this->name;
echo self::$name;
}
//声明一个常量
const BASE_URL = "127.0.0.1";
static public function display()
{
echo (self::BASE_URL);

}
}
/*$s = new Stus();
//$s->name="张三";
//echo ($s->name);
$s->show();*/
Stus::display();

?>

克隆 __clone() :克隆方法

例子:

<?php
class Stu{
public $name="可爱";
//克隆
public function show()
{
echo($this->name);

}
public function __clone()
{
}
}
$S = new Stu();
$S->show();
$s2 = clone($S);
$s2->show();
?>

猜你喜欢

转载自www.cnblogs.com/xieyankeai/p/9917416.html
今日推荐