首页 > Web开发 > 详细

面向对象/PHP

时间:2019-08-16 11:04:29      阅读:68      评论:0      收藏:0      [点我收藏+]

对象:对象object是一些相关变量的方法的软件集,经常用于模仿现实世界中我们身边的一些对象

对象特征:属性,方法

JavaScript中所有事物都是对象:字符串、数值、数组、函数……

此外,JavaScript允许自定义对象

——————

对象的属性和方法

JavaScript提供多个内建对象,如String、Data、Array等等

对象只是带有属性和方法的特殊数据类型

一切的对象都可以加属性和方法

——————

创建JavaScript对象

*由对象字面量创建

*由内建对象object创建

*由构造函数构造出来然后创建新的对象实例

*有函数Object.create()创建(ES5)

——————

原型:扩展系统对象的功能

优点:使用prototype属性扩展对象,可以大量减少对象的使用的内存空间

*prototype和__proto__的概念

prototype是构造函数的一个专有属性,这个属性是一个指针,指向一个对象

__proto__是一个对象拥有的内置属性,是JS内部使用寻找原型链的属性

原型链的形成真正是靠__proto__而非prototype

——————

继承:可以将一个对象扩展成为其他对象—不但可以使用对象作为原型建立其他对象,还可以扩展对象的属性和方法

模拟继承之call、apply和bind方法

——————

构造函数:名为构造函数,实际上并不能够叫做函数,而是一种函数的模型

在内置的构造函数上添加新的方法

Arry.prototype.名=值

构造函数定义函数的优劣:

优点:可以动态创建和编译一个函数,不会把开发人员限制在function

语句编译的函数结构体中/能够把函数当做表达式来使用,而不是当做一个结构固定的语句/使用更加灵活

缺点:每次调用时,都要进行编译,如果再循环结构中或者经常调用函数时,会影响效率

——————

delete方法:删除对象属性

instanceof方法:检测某个对象是不是另一个对象的实例

hasOwnProperty方法:是用来判断一个对象是否有你给出的名称的属性或方法(true/false)

isPrototypeOf:是用来判断要检查其原型链的对象是否存在于指定对象实例中(true/false)

getter获取数值/setter设置数值

for/in循环可以在循环体中遍历对象中的所有可枚举的属性,对象继承的内置方法是不可枚举的,但在代码中给对象添加的属性都是可枚举的

Object.defineProperty()可以设置属性的特性

Object.defineProperties()可以同时修改多个属性

————————————————————————

PHP

Dos指令

打开窗口:window+r输入cmd回车进入终端/在对应的文件下,按住shift+右击鼠标,找到“在此处打开命令窗口”

查看网络信息指令:ipconfig

修改终端背景和字体颜色的指令color

创建文件夹:md

cls清除当前终端

ctrl+c终止当前程序

cd进入文件夹指令

cd..返回上一级目录

dir查看当前目录下的文件和文件夹

del删除文件

rd删除文件夹

tab检索对应文件

……

——————

Mysql:是一种关系型数据库,就是以表格的形式存储数据

查看数据库指令 show databases

创建数据库:create database

进入数据库:use

删除数据库:drop database

进入数据库之后 查看数据表show table

——————

数据的类型:数值、日期、字符串

数值 整型和浮点型 整型 int float

int存放十位以内的数字

varchar名字

text小说

——————

PHP语法只能写在PHP文件中

PHP代码必须放在<?php 之间?>

——————

PHP的输出语句是echo或print

在PHP中使用$来定义变量

——————

变量作用域

分全局global和私有local,静态static,parameter参数变量

——————

作用域链

函数内部的变量才使用时,首先查找对应的作用域有没有这个变量,有就看在使用前赋值还是使用后赋值,使用前赋值,变量就是赋的那个值,使用后赋值就是undefined。如果当前作用域没有就像他的父级作用域查找,有酒使用,没有就继续向上查找直到window。如果还没就报xxx is not defined。这种查找机制叫作用域链

——————

Js的数据类型

          基本数据类型 string number boolean undefined null

          复合数据类型 array object function

变量是什么数据类型 跟后面的值有关。

基本数据类型 就是简单的直接赋值

Var a=45; 就是将45赋值给a

复合数据类型 是将内存地址赋值给变量

——————

运算

  1. 四则运算  返回的是计算结果
  2. 比较运算  返回的是true和false
  3. ==  ===  == 是比较运算符  12==“12“ true == 只比较值 不比较类型 === 即比较值也比较类型。主要用在判断上
  4. 逻辑运算符 || && !

|| 遇到一个不为0的数 就终止且返回这个数

&& 遇到第一个为0的数就终止,返回0,如果没有0就一直运算下去,且返回最后一个数

  1. 自增自减 a++ ++a a-- --a
  2. 三元运算  条件?表达式1:表达式2;

——————

超级全局变量

不受作用域限制 函数内函数外都可以使用

$GLOBALS  所有全局的东西都存在这里

$_SERVER  所有服务器方面的信息存在这里

$_REQUEST

$_POST  客户端post提交的数据都存在这里

$_GET   客户端get提交的数据都存在这里

$_COOKIE

$_SESSION  他们都是数组

get 提交 在网络地址栏  post 在http协议的请求体中

——————

循环语句

while/do{}while()(先执行一次然后再去判断,即使条件不满足,也会执行一次)

——————

函数

通过关键字 function 来定义函数

  1. 注意函数命名方式
  2. 函数的参数问题

函数带参数调用,首先献给参数赋值,然后再去处理变量。

  1. 函数应该有个返回值 使用 return 返回函数的结果

魔术常量

Php赋予他们特殊的意义

1.__LINE__;   返回当前代码位于php文件中第多少行

2.__FILE__;返回当前文件所处的绝对位置带文件名  

3.__DIR__; 返回当前文件所在的目录

4.__FUNCTION__; 返回所在函数被定义的名字

5.__CLASS__;返回当前所在的类名。

6.__TRAIT__;

7.__METHOD__;返回方法名

8.__NAMESPACE__;返回命名空间的名字;

 

析够函数

我们new 实例的时候其实是调用构造函数,函数调用的时候会开辟内存空间,调用完之后会自动销毁。销毁前会自动调用 __destruct 这个析构方法

——————

面向对象的三大特征

  1. 封装

将数据和操作数据的方法捆绑在一起,对外隐藏,只提供可以操作的接口。

  1. 继承
  2. 多态

Php是弱类型语言,没有多态这个概念,有重载。重载:子类和父类的方法名相同,子类会覆盖掉父类的方法,这就叫重载。

多态是强类型语言才有的,

——————

表单

前端提交数据可以通过表单提交

        主要有八种提交方式

                 Get 通过http中的网络地址

                 Post 通过http中的请求体 可加密

                 options

                 Put

                 Delete

                 Head

                 Trace

                 Connect

        对于get提交 php使用$_GET[]接受 对于post提交 php使用$_POET[]接收。

——————

继承

原型继承 将父类的实例对象赋值给子类的原型;私有的公有的都继承为公有的

call继承 call方法是函数/类天生自带的一个方法。将父类私有的继承为子类私有的

冒充对象继承   将父类私有的和公有的都继承为子类私有的。 使用for in

混合继承 私有的继承为私有的 私有的和公有的再次继承为公有的。

Call继承和原型继承的结合

组合继承 私有继承为私有 公有继承为公有

私有继承私有 借助call  公有继承为公有 (不能是原型赋值给原型。因为原型是对象,是复合数据类型,是地址赋值给了前者,导致二者指向同一个原型。得克隆)

中间类继承

 

Call和apply的区别

  1. call可以传多个参数 apply只能传两个参数,apply的第二个参数必须是数组
  2. call和apply都是修改函数中this的指向的
  3. 第一个参数都是对象,用于替换函数中的this的,如果不想替换this 写成null就行

——————

对象克隆

对象克隆是通过clone关键字实现的,即:clone对象

克隆出来的对象与原来的对象是两个内存地址,因此是两个不同的对象

随想在实例化的时候会自动调用存在的构造方法_从struct()。同样的,在累的内部,PHP允许定义一个_clone()的方法,在对象被克隆后,新克隆出来的对象会被自动调用

如果不允许对象被克隆,可以将_clone()方法私有化

——————

PHP没有多态

面向对象/PHP

原文:https://www.cnblogs.com/liyanzhe/p/11360340.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!