面试的时候发现自己有时候连最基础的知识都不能准确的回答,甚是可悲,万丈高楼平地起!

1-语法规范

行位单位、所以每行要用分号结束

变量严格区分大小写,函数名、方法名、类名不区分大小写

2-标签4种

xml风格<?php ?>

script风格

短格式 echo 'php'; ?>

sap格式

3-注释

双引号

单引号

注意:双引号不能与单引号错位

4-变量

1-变量的定义

变量就是内存中用于临时存储数据的一个内存空间,每一个空间都有一个名子,这个名子就是变量名,变量名的作用是用于引用,通过变量名对变更的操作就是对内存的对应的空间都读写。

语法:$变量名=值;

变量名必须是字符数字下划线开头

必须以 $ 开头

变量名严格区分大小写

2.-可变变量

A变量值是另一个变量的名,就可以在A变量名前加两个$读取另一个变量的值。

$a = 'b';

$b = 'c';

$$a = 'c';

3-预定义变量 (9种、$_、$GLOBALS)

$_GET 用于接收从前台以get方式传递过来的数据

$_POST 用于接收从前台以post方式传递过来的数据

$_REQUEST 包含get与post方式传递的数据

$_SERVER 记录了客户端与服务器端的相关信息

$_COOKIE 主要用于记录php会话技术中的保存在客户端的数据

$_SESSION 主要用于记录php会话技术中的保存在服务器端的数据7.

$GLOBALS 主要用于记录全局变量

$_FILES 主要保存用户上传的文件的信息

$_ENV 主要用于保存php的环境变量

6-变量的删除

unset(变量名);内存中没有

变量名 = null;(变量的值是null,还存在于变量中)

7-常量

常量就是一类特殊的变量,常量也是存储数据的,但是常量一旦定义就不允许更改值,常量本身也不能删除。

常量的定义

define('常量名',值);

const 常量名 = 值;

区别:

const可以定义类的内部和外部

define只能定义类的内部

define的第三个参数区别大小写 true

const的值读取:constant()

8-魔术常量(6种、__开头)

__FILE__ 当前脚本文件的完整路径名

__LINE__ 当前行号

__DIR__ 当前文件的所在的目录

__FUNCTION__ 获取当前所在的函数名

__METHOD__ 获取当前所在的方法名。形式 类名::方法名

__CLASS___ 获取当前所在的类名

9-数据类型

==三大类型:(4+2+2)==

标量数据类型(int、float、string、bool)

复合数据类型 (array、object)

特殊数据类型(resource、null)

一. 标量数据类型

int

float

string

使用单引号定义的字符串能被转义的字符有\’转义成` \\转义成\

单引号中的变量不能被解释为变量的值

使用双引号定义的字符串能被转义的字符有\” \ \$ \t \n

双引号中的变量能被解释为变量的值

双引号中的变量有时需使用”{}”括起来,来限定变量

php中的转义符()\' 单引号

\" 双引号

\t tab表(制表符)

\n 换行

\r 回车

\\ \

\$ $

定界符 heredoc 、nowdoc

//heredoc

$a = 100;

$str =<<

sadsad,$a,sad

abc;

echo $str;

//nowdoc

$a =100;

$str = <<

这里可以是任合内容

我是历的苛夺基$a

本原则叶落归根在运

输费艰难田¥¥&……

AAA;

echo $str;

Boolean

10-复合数据类型

数组

==索引数组== 下标是整数

==关联数组== 下标是字符

object

对象

11-特殊数据类型

resource

null

12-数据类型的转换

其他数据类型转为整型

其他数据类型转为字符串

其他数据类型转为布尔型

所有0、“”、“0”、null、array()转布尔都为false

13-变量与常量的内存理解

1、内存分区

栈区 cpu

堆区 存储复合类型的值

数据段 简单的值,细分全局区(全局变量、局部变量)和静态区(常量、类常量、静态变量)

代码区 (存代码)

14-执行过程

编译

执行

输出

15-函数判断

is_int() 判断是否为整型

is_bool() 判断是否为布尔类型

is_array() 判断是否为数组

is_null(); 判断是否为null

is_object() 判断是否为对象

is_string() 判断是否为字符串

is_scalar(); 判断是否为标量数据类型

empty();

判断一个变量是否为“空”,只要是能够转换为布尔false都是所谓的“空”,返回布尔true。0、0.0、””、’0’、false、null、空数组

isset();

null的时候是false

主要用于判断是否设置值,如果是null值才返回false

is_null();

只有是null才为true

主要用于判断一个变量的值是否为null

16-PHP的输出语句

echo

print

print_r()

var_dump()

sprint_f()

十四、运算符

值得注意的是,很多人搞不清楚前自增和后自增的区别,

前自增

​ 运行规则:先对变量的值进行加1,再使用变量的值进行运算

后自增

​ 运行规则:先使用变量的值进行运算,再对变量的值进行加1

提示:

​ 无论前自增还是后自增,变量的值都会加1,唯独受影响的是整个式的结果

算术运算符

前自增

后自增

前自减

后自减

字符串运算符

.

.=

比较运算符

>、=、<=、!=、==、===、!==

提示:

布尔false

等效false的值(0、0.0、””、’0’、null、空数组)

如果要严格区分等效于false的其他数据类型值与真的布尔值false,那么请求===

逻辑运算符

&&、||、!、and、or

逻辑与短路:有一个为true返回true

逻辑或短路:有一个为false返回false

and、or 与 &&、||区别:

and、or的运算优先级低于=

&&、||的运算优先级高于=

位运算符

十五、流程控制

一、 分支结构

//单分支

if(exp){

//your code

}

//双分支

if(exp){

//your code

}else{

//default code

}

//多分支

if(expA){

//codeA

}else if(expB){

//codeB

}else if(expC){

//codeC

}else{

//default code

}

switch分支

语法:

switch(变量){

case 值1:

//语句体1

break;

case 值2:

//语句体2

break;

default:

//缺省语句体

}

php中switch的比较属于==比较,js中switch的比较属于===

二、 循环控制

for循环

for($i=0;$i<10;$i++){

}

foreach循环

语法1:

foreach(数组 as $v){

//循环体

}

语法2:

foreach(数组 as $k=>$v){

//循环体

}

while循环

while(exp){

//循环体

}

do…while循环

do{

//循环体

}while(exp)

一、数组 count($arr)

元素

下标

个数

二、数组的相关操作

定义:array()、[]

追加

删除 usnet();

三、数组的遍历

下标连续的

for($i = 0 ;$i

}

下标不连续

foreach(数组 as $k => $v){

//循环体

}

三、数组的分类

索引数组-下标是整数

关联数组-下标是字符串

混合数组

四、关联数组的遍历

==怎么把关联二维数组转换成一维数组==

public function test1(){

$user = array(

'id'=>1,

'name'=>'zhangsan',

'age'=>19

);

$arr = '';

foreach ($user as $key=>$value ){

$arr .= $value;

}

dump($arr);die;

}

public function test2(){

$arr = [];

$arr[] = 'zhsangsan';

$arr[] = '19';

$arr[] = '1';

dump($arr);die;

}

五、函数

函数的定义

function funName(形参列表){

//函数体

【return 值】;

}

形参

形参主要用于接收从函数外部传递进来的数据

形参只对内部可见

形参可以具有默认值,如果在调用时没有为具有默认值的形参传递数据,那么在函数内部使用的形参的默认值,否则使用传递进来的数据。

具有默认值的形参一般位于形参列表的最后。

形参的作用是让函数更性有通用性

实参

用于向函数内部传递值

匿名函数

$showInfo =function(){

}

六、静态变量

==在函数内部使用static定义的变量就是静态变量==

静态变量的特性

静态变量只会被初始化一次

静态变量的值不会随着函数的调用而销毁,仍然在内存,但是不能在函数外部访问。

静态变量在其后函数调用时还可以访问,并且保留上一次函数运行时的结果

==项目中积分的使用问题==

七、传值方式

赋值传真

将变量A的值传递到变量B

引用传值

将变量A的内存地址传递到变量B

&地址符

用于将赋值传值更改为引用传值。

函数的实参地址的传递

函数的实参与形参的传值是赋值传值

如果想实现函数实参与形参的引用传值,形参前面加&

八、作用域

外部作用域

在任何函数外部定义的变量就是全局变量,其作用域就是全局作用域

内部作用域

在函数内部定义的变量就是局部变量,其作用域就是局部作用域

全局作用域

global关键字

函数内部访问函数外部的变量

不受作用域限制

常量、

预定义的变量:

$_GET

$_POST

$_REQUEST

$_SERVER

$_SESSION

$_COOKIE

$_ENV

$_FILES

$GLOBALS

一、PHP文件引入

require

在引入的文件发生错误(不存在),会直接结束当前循环的执行。

inlcude

在引入的文件发生错误(不存在),会继续其后的代码执行。

require_once\include_once

在引入文件时会先检查被引入的文件之前是否有引入过,如果没有则引入,有就不引入

说明:一般引入的代码有逻辑性的,使用require,include一般用来引入HTML

二、针对调用的函数引入问题

同一个脚本内可以先调用函数后定义函数

原理:先编译,编译后代码区就有了函数的定义代码,后再调用,正常

先调用,后引入,报错(原因是引入的文件是先引入后调用,执行调用时文件还没有定义,所以会报错)

三、PHP常用字符串

==strlen== 字符串的长度

$string = 'http://www.doc.com/index.php/Home/Test/strlen';

echo (strlen($string));

==strchr== 查找search字符串首次出现的位置并截取到最后

strchr($string,'w')

==strrchr== 查找search字符串末次出现的位置并截取到最后

strchr($string,'i')

==strpos== 在str字符串中查询search字符串首次出现的位置(0开始算起)

echo (strpos($string,'w'));

==strrpos== 在str字符串中查询search字符串最后一次出现的位置

echo (strpos($string,'w'));

stripos、strripos i表示不区分大小写的查询

==trim==

①:trim(str【,substr】) 用于在str字符串两端去除指定的substr字符,如果省略substr,则是去除空格

$string = " zhangsan ";

echo(trim($string));

$string1 = '22zhangsan22';

echo '
';

echo (trim($string1,'22'));

②:ltrim(str【,substr】) 去除左侧指定的字符或空格

$string2 = '22zhangsan';

echo (ltrim($string2,22));

③:rtrim(str【,substr】) 去除右侧指定的字符或空格

$string2 = 'zhangsan22';

echo (rtrim($string2,22));

==str_repeat(str,n)==

$string2 = 'nice';

echo (str_repeat($string2,3));

==ucfirst、ucwords== 首写单词大写,一句话首单词大写

$string2 = 'nice';

echo (ucfirst($string2));

$string2 = 'nice aweqwe dqwe';

echo (ucwords($string2));

==strtolower、strtoupper== 转换大小写

==explode(sep,str)== 将字符串str,使用sep分隔符进行分割,并以数组的形式返回

$str = "people became quite illogical when they decide";

var_dump(explode(' ',$str));

==md5( )== 加密,返回32位字符串

==addslashes()==

对于些特殊字符添加反斜杠(\),特殊字符(‘)(“)(\)

==stripslashes( )==

addslashes的逆运算,去除反斜杠

==htmlspecialchars== 将html语言中的标签转换成对应的字符实体。

==htmlspecialchars_decode== 逆运算

==chr、ord==

ord主要用于获取字符的unicode编码 97

chr主要用于获取指定编码对应的字符 b

四、数学函数

max() 获取多个变量或数组中的最大值

min() 获取多个变量或数组中的最小值

abs() 获取绝对值

ceil() 向上取整

floor() 向下取整

rand(m,n) 获取m与n之间的随机整数

mt_rand(m,n); 推荐,获取m与n之间的随机整数

round(v【,p】); 对变量v保留p位小数(四舍五入),如果省略p表示直接取整

pow(m,n); 取m的n次方

sqrt(v); 开平方

五、数组函数

count() 数组长度

array_keys($arr); 以数组形式返回key值

array_values($arr); 以数组形式返回value值

in_array($value); 判断数组$arr中存是否有$value值存在

array_key_exists($key,$arr); 判断数组$arr中存是否有$key键名存在

数组添加与删除

array_pop(); 从尾部删除一个元素

array_push(); 向数组的尾部追加一个元素

array_shift(); 从头部删除一个元素

array_unshift(); 向数组的部部追加一个元素

array_splice(); 从数组的中间删除指定个数的元素,并以新的元素代替

list结构

list(变量列表)= 数组

将数组中的元素的值,依次赋值给list后的变量,要求数组是一个索引数组

数组排序

sort(arr); 对数组进行升序排序

rsort($arr); 对数组进行降序排序

数组合并

array_merge(arrA, arrA, arrA,….);

数组指针相关的函数

each(); 用于获取当前数组指针所指向的元素,并返回一个混合数组,==并将指针下移==。

key(); 用于获取当前数组指针所指向元素键名

current(); 用于获取当前数组指针所指向元素的键值

next(); 将指针下移

prev(); 将指针上移

end(); 将指针指向最后一个元素

reset(); 重置指针(回到第一个元素)

$arr =[

'id'=>2,

'brand' => 'apple',

'price'=> 16

];

//用于获取当前数组指针所指向的元素,并返回一个混合数组,并将指针下移。

var_dump(each($arr));

var_dump(key($arr)) ;

var_dump(current($arr)) ;

var_dump(next($arr)) ;

var_dump(prev($arr)) ;

var_dump(end($arr)) ;

var_dump(reset($arr)) ;

输出结果

array(4) {

[1]=>

int(2)

["value"]=>

int(2)

[0]=>

string(2) "id"

["key"]=>

string(2) "id"

}

string(5) "brand"

string(5) "apple"

int(16)

string(5) "apple"

int(16)

int(2)

示例2:使用each遍历数组

$arr =[

'id'=>2,

'brand' => 'apple',

'price'=> 16

];

while($data = each($arr)){

echo $data['value'],'
';

}

本作品采用《CC 协议》,转载必须注明作者和本文链接

php1技术论坛,PHP 基础知识-1相关推荐

  1. 计算机应用基础试题事业单位,机关事业单位技术工人计算机应用基础知识复习题...

    机关事业单位技术工人计算机应用基础知识复习题 工人技师 计算机考试试题库 公共部分 5.在 Windows 中,文件名的最大长度为___256 个西文或者 128 个汉字________. 6.制作网 ...

  2. CV:计算机视觉技术之图像基础知识(二)—图像内核的可视化解释

    CV:计算机视觉技术之图像基础知识(二)-图像内核的可视化解释 目录 图像内核的可视化解释 测试九种卷积核 官方Demo DIY图片测试 DIY实时视频测试 相关文章 CV:计算机视觉技术之图像基础知 ...

  3. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  4. CV:计算机视觉技术之图像基础知识—以python的cv2库来了解计算机视觉图像基础

    CV:计算机视觉技术之图像基础知识-以python的cv2库来了解计算机视觉图像基础 目录 一.图像中的傅里叶变换 1.时域和频域 2.傅里叶变换 3.图像中的傅里叶变换

  5. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)

    CV:计算机视觉技术之图像基础知识(一)-以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边) 目录 一.图像中的傅里叶变换 1 ...

  6. ps_基础技术提升topic基础知识调研

    基础技术提升topic基础知识调研结果 基础技术提升topic基础知识调研结果分类 大类 小类 调研提出的问题 C类 编译与调试 如何追core?对gdb的了解还是太浅,应用中有很多问题. 怎么在没有 ...

  7. CV:计算机视觉技术之图像基础知识(二)—图像内核的九种卷积核可视化解释(blur/bottom sobel /emboss/identity /sobel /outline/sharpen)

    CV:计算机视觉技术之图像基础知识(二)-图像内核的九种卷积核可视化解释(blur/bottom sobel /emboss/identity /left sobel /outline/right s ...

  8. 会议交流 - CNCC 技术论坛 | NLP中知识和数据怎么选?当然是全都要!——第四届中文信息技术发展战略研讨会...

    本文转载自公众号:中国计算机学会 . 本论坛将于CNCC2020期间,10月23日下午16:00-18:00,在北京新世纪日航饭店3层南京厅举行.本论坛将邀请多位来自国内著名高校和人工智能企业的知名自 ...

  9. 初学者的技术写作:技术博客基础知识A-Z指南

    如果你喜欢写作和技术,技术写作可能是一个适合你的职业.如果你喜欢技术,但又不是真的整天喜欢编码,也可以做一些别的事情. 如果你喜欢通过教导他人来学习,为开源项目做出贡献,并教导他人如何做到这一点,或者 ...

最新文章

  1. dl,dt,dd,ul,li,ol区别
  2. HP LoadRunner 11.00 新鲜尝
  3. iOS 静态库代码混淆方案
  4. maven重新指定仓库存储路径
  5. 猪八戒网的DevOps进化论
  6. Windows环境下多线程编程原理与应用读书笔记(8)————信号量及其应用
  7. Linux定义多个标准输入输出,言简意赅解释Linux中的标准输入输出
  8. VS2015 CDKEY
  9. 计算机专业四次评估,教育部第四次学科评估:信息与通信工程一级学科排行,仅供参考...
  10. taptap APP端 产品体验的一点分析报告
  11. 泛微OA主表与明细表的js操作
  12. git push报错 rejected
  13. lucas–kanade_Lucas–Kanade
  14. Dango之初识安装
  15. 人工神经网络的算法原理,深度神经网络工作原理
  16. 用计算机亩换算成平方,亩数和平方换算(平方米换算亩计算器)
  17. win10/win11快速隐藏/显示桌面图标快捷方式
  18. 除了迅雷,目前还有什么下载软件好用?以下这3款你听过吗?
  19. 当当海航互相选择的背后:或是一个双赢局
  20. 网络安全入门:什么是防火墙,防火墙有哪些功能

热门文章

  1. 聚美优品、京东:为什么明知假货还有人买?
  2. 阿里云服务器代金券领取方法
  3. HDFS智能化存储管理:Smart Storage Management
  4. Arduino Uno 无声无息的开关 固态继电器(四引脚)的实验
  5. OpenSSL加解密
  6. 用 Java 手写一个植物大战僵尸简易版!
  7. 大型医院的电子签章应用场景:医护、患者、供应商在线签署
  8. thinkphp发起网络请求
  9. VB如何在窗口之间传递数据?
  10. 计算机网络恶搞,史上最贱恶搞软件来袭Cancer:只为搞崩你的电脑