php 相关知识

什么事面向对象?主要特征是什么
面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。
HTTP 状态中302、403、 500代码含义?
一二三四五原则: 一. 消息系列 二 成功系列 三. 重定向系列 四. 请求错误系列 五. 服务器端错误系列
302:临时转移成功,请求的内容已转移到新位置 403:禁止访问 500:服务器内部错误 401代表未授权。
会话控制:是一种用来跟踪用户上网信息的技术,是建立在浏览器和服务段对话之间的一中监控手段
cookie:是一中用来跟踪和识别用户上网信息的会话控制技术,他将跟踪后的信息存储只浏览器 的客户端
session:已是一种和cookie一样的会话控制技术,它将跟走后的信息及文件的形式存储在服务段,所以
php文件的后缀名默认为:.php
php标记默认:<?php ?>
php输出:使用echo (当echo的内容是字符串时需要加引号),,可以输出一个或多个字符串。
print:只允许输出一个字符串,返回值总为1。
注销 单行注释: //或#
多行注释:/* */
php的数据类型
四种基本的数据类型:整型:int
浮点型:float或double
布尔类型:bool
字符串:string
两种复合数据类型:数组:array
对象:object
两种特殊的数据类型:空类型:null
资源类型:resource
获取和转换变量类型:① gettype() :获取变量的数据类型
②settype() :对变量进行前置的数据类型转换
声明方式:直接在变量名的前面加 即 可 , p h p 变 量 不 需 要 声 明 , 可 直 接 拿 来 使 用 。 规 则 : 由 数 字 、 字 母 、 下 划 线 、 组 成 , 开 头 不 能 是 数 字 , 必 须 以 即可,php变量不需要声明,可直接拿来使用。 规则: 由数字、字母、下划线、组成,开头不能是数字,必须以 php使线为开始符,变量区分大小写
unset():销毁变量
empty():检测变量的值是否为空,为空返回true,不为空返回false
isset():检测变量的值是否被设置,且值不是null,符合返回true, 否则返回flash
常量
定义:在程序运行过程中,一旦设置值就不能发生改变的容器,称为常量。
声明方法:define(“常量名”,“常量的值”)
检测常量的值是否定义:defined(“常量名”)
定义了返回true 没有定义返回false
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
php字符串变量并置运算符:并置运算符 (.) 用于把两个字符串值连接起来。
strlen()函数 返回字符串的长度(字节数)
strpos()函数 用于在字符串内查找一个字符或一段指定的文本,如果在字符串中找到匹配,该函数会返回一个匹配字符的位置,如果未找到匹配,则返回false。
mplode(参数1,参数2):把数组元素组合为一个字符串。参数1:数组元素之间放置的内容,默认是""(空字符串);参数2:要组合为字符串的数组。
expiode(参数1,参数2,参数3):将字符串转换为数组。参数1:规定在哪里分割字符串;参数2:要分割的字符串;参数3:规定所返回的数组元素的数目。
lcfirst() 函数把字符串中的首字符转换为小写。
ucfirst()函数把字符串中的首字符转换为大写。
.ucwords()函数把字符串中每个单词的首字符转换成大写。
.strtoupper()函数把字符串转换为大写。
strtolower()函数把字符串转换为小写。
.trim() 可移除字符串两端的空白字符或其他预定义字符
.ltrim() 可移除字符串左边的空白字符或其他预定义字符
.rtrim() 可移除字符串右侧的空白字符或其他预定义字符
.str_repeat(参数1,参数2) 函数把字符串重复指定的次数。(参数1:要重复的字符串,参数2:字符串被重复的次数,必须大于等于0)
.str_replace() 函数 替换字符串中的一些字符(区分大小写)。
.str_ireplace() 函数替换字符串中的一些字符(不区分大小写)
15/16函数必须遵循下列规则:
如果搜索的字符串是一个数组,那么它将返回一个数组。
如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
如果同时需要对某个数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余的元素将用空字符串进行替换。
如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作。
.str_split(参数1,参数2) 函数把字符串分割到数组中。(参数1:要分割的字符串,参数2:每个数组元素的长度,默认值为1)。
.strchr(参数1,参数2) 函数搜索字符串在另一字符串中的第一次出现。(参数1:被搜索的字符串;参数2:所搜索的字符串。别名:strstr() )。
.strcmp(参数1,参数2)函数比较两个字符串。 (参数1:比较的第一个字符串;参数2:比较的第二个字符串。大小写敏感)。
算数运算: + - * % /
赋值运算符:= += -= %= *= /=
比较运算符(关系运算符):== === != <> !== > < >= <=
逻辑运算符:&& ||
三元运算符:(expr1) ? (expr2) : (expr3)
组合运算符:$c = $a <=> $b;
eg:如果 $a > $b, 则 $c 的值为 1。
如果 $a == $b, 则 $c 的值为 0。
如果 $a < $b, 则 c 的 值 为 − 1 。 递 增 递 减 运 算 符 : + + x x + + − − x x − − 错 误 屏 蔽 运 算 符 : @ 字 符 串 拼 接 运 算 符 : . 输 出 语 句 的 不 同 . e c h o : 可 以 输 出 多 个 语 句 , 语 句 与 语 句 之 间 用 英 文 逗 号 隔 开 , 只 能 输 出 基 本 的 数 据 类 型 . p r i n t : 只 能 输 出 一 个 语 句 , 只 能 输 出 基 本 的 数 据 类 型 , . v a r d u m p ( ) : 可 以 打 印 任 何 类 型 的 数 据 , 输 出 的 内 容 主 要 包 括 : 数 据 类 型 , 长 度 , 数 据 内 容 . p r i n t r ( ) : 结 构 化 打 印 , 主 要 用 于 输 出 数 组 的 基 本 结 构 引 号 的 使 用 规 范 单 引 号 : 单 引 号 可 以 用 于 字 符 串 输 出 , 单 引 号 内 不 能 嵌 套 单 引 号 , 必 须 使 用 双 引 号 。 双 引 号 : 双 引 号 可 以 用 于 字 符 串 输 出 , 双 引 号 内 不 能 嵌 套 双 引 号 , 必 须 使 用 单 引 号 。 . 如 果 输 出 的 内 容 中 有 变 量 , 并 且 要 被 解 析 , 则 变 量 名 的 外 层 引 号 必 须 是 双 引 号 , 只 有 双 引 号 才 能 解 析 以 c 的值为 -1。 递增递减运算符:++x x++ --x x-- 错误屏蔽运算符 :@ 字符串拼接运算符: . 输出语句的不同 .echo:可以输出多个语句,语句与语句之间用英文逗号隔开,只能输出基本的数据类型 .print:只能输出一个语句,只能输出基本的数据类型 ,.var_dump():可以打印任何类型的数据,输出的内容主要包括:数据类型,长度,数据内容 .print_r():结构化打印,主要用于输出数组的基本结构 引号的使用规范 单引号:单引号可以用于字符串输出,单引号内不能嵌套单引号,必须使用双引号。 双引号:双引号可以用于字符串输出,双引号内不能嵌套双引号,必须使用单引号。 .如果输出的内容中有变量,并且要被解析,则变量名的外层引号必须是双引号,只有双引号才能解析以 c1:++xx++xx:@:..echo.print:,.vardump():.printr():使使使.开头的变量。

数据库范式
第一范式:表中的列不可重复,且每一列不能再分,保持原子性
第二范式:表中的每行数据保证唯一,且每列都和主键有关
第三范式:表中每一列都要和主键列有直接相关关系,消除依赖传递
魔术方法
__get()方法的作用和使用
作用:在类外获取私有属性的值时__get()自动调用,作用是用于返回私有属性的值
__get(参数) 参数:代表在类外获取私有属性名
__set()方法的作用和使用
作用:在类外给私有属性设置值时,该方法自动调用
参数:第一个参数表示要设置的属性名 第二个参数表示要设置的属相值
__call()方法的作用和使用
作用:在类外访问一个不存在的方法时,该方法自动调用
__call( 1,2) 参数1:代表请求的方法名 参数2:代表访问方时传递的参数
__sleep()方法的作用和使用
作用:在类外进行对象的串行化时(serialize() ) 该方法自动调用,用于在串行化之前做一些操作
没有参数,但必须有返回值,返回值是一个数组,就是你让对象睡觉时哪些属性跟着对象睡觉
__wakeup()
作用:在类外进行对象的反串行化时(unserialize) 该方法自动调用用于在对象唤醒前,做一些准备工作
__toString()
作用:在类外输出对象时,该方法自动调用,必须有一个返回值,是一个字符串类型
__clone()
作用:在类外克隆对象时,该方法自动调用,用于在克隆前做一些操作
__isset()
作用:在类外检测私有属性的值是否设置时,该方法自动调用,参数是你检测的私有属性的名称,返回值就是通过isset()函数在类中进行检测
__unset()
作用:在类外销毁私有属性时该方法自动调用,用于在类中进行对属性的删除。
:堆和栈的区别?
A、堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小;
B、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。
索引的作用?和它的优点缺点是什么?
索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
什么是锁?
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。
加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。
基本锁类型:锁包括行级锁和表级锁
如何实现PHP的安全最大化?怎样避免SQL注入漏洞和XSS跨站脚本攻击漏洞?
基本原则:不对外界展示服务器或程序设计细节(屏蔽错误),不相信任何用户提交的数据(过滤用户提交)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值