1,单引号和双引号的区别

  • 单引号表示字符串,双引号能解析字符串中的变量,所以,如果没有变量,尽量用单引号,加快解析速度
  • 当字符串需要单引号或者双引号的时候,可以用转义字符代替

2,类型转换

  • 通过(boolean)来进行类型转换
  • 通过bool settype(mix var, string type)来进行类型转换,转换成功,返回true,否则返回false
  • 两者的区别是,a转换后原变量不变,b转换后,原变量发生改变,变为转换后的变量

3,检测数据类型,

  • 用is_bool等一系列函数来进行检测,如检测是否是数字,is_numberic来检测是不是数字类型

4,用define来定义常量,

  • 格式为define(string name,mix value,case_sentive);最后一个参数表示是否大小写敏感,true表示不敏感
  • 用defined来判断是否定义
  • 系统常量,常用的__FILE__表示文件路径

5,对变量的赋值,

  • 引用赋值和直接赋值,直接赋值就是直接等于,引用赋值是用&来表示,引用赋值时,值变,则引用的也变

6,变量包括局部变量,全局变量,静态变量,区别是

  • 局部变量只在函数内部有用
  • 全局变量在整个php文件中有用,但是在用户自定义函数中没用,如果想在自定义函数中用,在自定义函数前用global来声明一下,具体的如下
<?php
$test = 'hello test';
function echotest(){
global $test;
echo $test;
}

静态变量,能够在函数调用结束后仍保留变量值,当再次回到作用域时,可以继续原来的值,而其他的都会在被调用之后给清除掉,使用法服下,先用关键字static来声明变量,把关键字static放在定义的变量之前

functin test(){
static $t=0;
$t+=1;
}

静态变量

7,逻辑运算符

  • ||和or的优先级不一样,or的优先级更高一些

8,对函数的引用

  • 对函数的引用本质上是对函数返回值的引用,取消一般引用用unset来取消引用

9,四个输出函数echo,print,printf ,print_r

  • echo 一次可以输出多个值,依次以逗号隔开,例如echo 'hello','world'
  • print() 打印一个值,有返回值,如果成功,则返回true,如果失败,则返回false
  • printf(),该函数输出格式化的字符串,语法是printf(format,arg1,arg2,arg++),format规定字符串以及如何格式化其中的变量,arg1..等将参数插入到主字符串的百分号处,如printf("%s world. Day number %u",$str,$number);
  • print_r(),可以把字符串和数字简单打印出来,而数组可以用键值对来显示,并以array开头,类似于var_dume(),其输出布尔值和null的结果都为\n,没有意义,因此用var_dump()函数更适合调试

10,流程控制的另外一种写法

  • 如果流程控制语句很复杂,则可以用:来代替"{",然后用endif,endforeach来代替"}"
  • 开挂的break,continue,在循环语句中,可以通过break num来表示跳出num层循环,层的划分是根据当前层来划分的,

11,转义,还原字符串

  • a,手动转义,还原字符串,即手动添加\转义符号,适用于比较短的字符串
  • b,自动转义,还原字符串,适用于比较大的字符串用addslashes和stripslashes来实现转义和还原,如果只针对某一个或者某一串字符串来实现转义,则可以addcslashes(string s, string clist)来实现

12,字符函数

  • strlen(string str)长度函数
  • substr(string str, int start [,int length]),常用于截取超长字符串的时候,经常需要对其部分显示,echo substr($test,0,30).',,,';注意,用其截断字符串的时候,如果是奇数的话,容易中文字符产生乱码所以适合英文字符串的截取,如果针对中文字符串,应用substr()编写一个自定义函数,
  • strcmp(string str1, string str2),比较大小,区分大小写,如果相等,则返回0,如果大于返回正值,如果小于,返回负值,类似函数strcasecmp()不区分大小写,常用于登录名区分大小写的验证
  • strnatcmp(string str1,string str2)区分大小写,当数字前面的字符串一样时,根据数字进行排序,否则根据字符串排序,还有一个不区分大小写的函数strnatcasecmp()不区分大小写
    • 例如strnatcmp('str1','str2'),返回-1;strnatcasecmp('str2','STR1')返回的是1
  • strncmp(str1,str2,int len),比较str1,str2的前len个字符
  • strstr(str1,str2),从左到右在str1中查找str2,如果没找到,返回false,如果找到了,则返回剩余的部分,包含匹配的字符,比如strstr('123.jpg','.');返回的是'.jpg'与之匹配方向相反的是strchar();
  • substr_count(str1,str2);表示在字符串str1中时str2出现的次数,常用于搜素引擎中
  • str_ireplace(str1,str2,content)在content中查找str1,用str2来替换,不区分大小写,用str_replace()是区分大小写的,常用于搜索引擎的关键字处理,如str_ireplace($str,'<font color="red">'.$str.'</font>',$content);
  • substr_replace(str1,str2,start[,length]),对str1中start开始的,length个字符用str2替换
  • number_formate()格式化数字

13,正则表达式

  • a,正则表达式是有元字符(特殊含义字符)和文本字符组成,以'/'来表示开始和结尾
  • b,行定位符(^行开始,$行结尾)
  • c,单词定界符(\b,表示一个分界符,是单独的一个单词,\B,不是分界符,包含即可)
  • d,字符类([aA],[a-zA-Z])
  • e,排除字符([^])
  • f,限定符(?匹配字符零次或者一次,+匹配字符一次或者多次,*匹配字符零次或者多次,{n}匹配n次,{n,}至少n次,{n,m}至少n次,最多m次)
  • g,点号字符(.),^s.t$匹配以s开头,$结尾的,中间包含一个字符的单词

14,php数组

  • a,array_pop(),array_push()
  • b,array_search(),搜索,常用于购物车
  • c,array_unique(),删除数组中重复的元素

15,其他,文件上传

  • is_dir();//判断是否存在文件夹
  • mkdir()创建文件夹
  • move_uploaded_file();执行文件上传操作
  • $_FILES['picture']['name'];
  • form使用post方法,设置enctype="multipart/form-data"属性

16,表单提交

  • a,select中的multiple表示是否是多项选择
  • b,textarea中,wrap的值,off,表示不自动换行,hard表示硬换行,soft表示软换行,表示换行发到服务器,换行标记不发送到服务器,输出仍为一行
  • c,对URL进行编码,解码,urlencode()编码,urldecode()解码,例如<a href='index.php?id=<?php echo urlcode('helloworld');?>'>test</a>

17,时间和日期函数

  • a,mktime()获取当前的时间戳,date('Y-m-d H:i:s',mktime());解析mktime()的时间戳
  • b,checkdate(month,day,year),检查日期的有效性
  • c, int strtotime(),将任何英文文本的日期转换为unix时间戳
  • d,microtime()返回毫秒数,比如说本次搜索用了多长时间

18,cookie

  • setcookie('test','www.test.com');//设置cookie,如果没有设置过期时间,则表示浏览器删除时自动删除,因为保存在内存中
  • setcookie('test','www.test.com',time()+3600);//设置过期时间
  • setcookie('test','',time()-1);删除cookie

19,session

  • a,步骤,启动session->注册session->使用session->删除session
  • b,启动session,有两种方法,session_start()函数,需要在页面开始位置调用,session_register()函数,隐含的启动session,需要在php.ini文件中将register_globals设置为on
  • c,删除session,用unset($_SESSION['USER'])
  • d,session设置时间,
    • 1,客户端没有禁止cookie,此时使用session_set_cookie_params()设置session失效时间关键代码如下
    • $time=1*60; //初始化session失效时间
    • session_set_cookie_params($time);//使用函数,必须用在session_start()之前,注意,不推荐次函数,此函数在一些浏览器出现问题,所以一般手动设置失效时间
    • session_start(); //初始化session
    • 手动设置session,常用
    • session_start();
    • setcookie(session_name(),session_id(),time()+60,'/');
    • 2,客户端禁止cookie
    • 最好的方法是在数据库中存储session_id,特别是针对企业级网站

夯实基础之php学习-1基础篇的更多相关文章

  1. 夯实基础之php学习-2提高篇

    1,Jpgraph, 详见Php图形化jpgraph 2,文件系统 文件的操作步骤:打开文件->操作文件->关闭文件 打开文件fopen(filename,mode) 关闭文件fclose ...

  2. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  3. 数据库学习---SQL基础(二)

    数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) 上篇复习的sql的增删改查,and ,or ,>=, <=,!=等逻辑运算符,还有in ...

  4. 数据库学习---SQL基础(一)

     数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) SQL(struct query language)结构化查询语言:一种专门与数据库通信的语言, ...

  5. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  6. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  7. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  8. Python3学习(1)-基础篇

    Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --v ...

  9. Pytorch_第六篇_深度学习 (DeepLearning) 基础 [2]---神经网络常用的损失函数

    深度学习 (DeepLearning) 基础 [2]---神经网络常用的损失函数 Introduce 在上一篇"深度学习 (DeepLearning) 基础 [1]---监督学习和无监督学习 ...

随机推荐

  1. Failed to push selection: Read-only file system的解决方法

    1.获得root权限:adb root 2.设置/system为可读写:adb remount 3.将hosts文件复制到PC:adb pull /system/usr/keylayout/mtk-k ...

  2. android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习

    跑马灯效果 1.用过属性的方式实现跑马灯效果 属性:                  android:singleLine="true" 这个属性是设置TextView文本中文字 ...

  3. App开发流程之使用GCD

    GCD即为Grand Central Dispatch的缩写,是一种主要用于异步处理任务的安全的高性能解决方案. 在此不对比其他异步处理技术,只记录GCD的使用及说明. 先记录一些必要的概念:线程,同 ...

  4. 实现BaseFragment

    package liu.basedemo.base; import android.app.Activity; import android.content.Intent; import androi ...

  5. iOS之 Xcode7下 bitcode的工作流程及安全评估

    文章参考来自http://www.freebuf.com/articles/others-articles/89806.html 很多朋友在升级Xcode7以后原有正常运行的工程在Xcode7下编译会 ...

  6. asp.net 读取一个文本文件,并输出到网页显示 通过 一般处理程序实现

    asp.net 读取一个文本文件,并输出到网页显示 通过 一般处理程序实现 用这个可以做模板首页进行输出,也可以自已自定义进行扩展 //得到读取到的文本到string中 string resultTe ...

  7. ASP.NET MVC Bootstrap极速开发框架

    前言 每次新开发项目都要从头开始设计?有木有一个通用的快速开发框架?并且得是ASP.NET MVC  And Bootstrap?数据库不要手工创建?框架对未来业务支持的扩展性好?这么简单的功能还需要 ...

  8. 自定义日志阅读器——包括了一个load取Tomcat日志的分析器

    最近在写往公司产品里添加Tomcat适配器,以支持Tomcat.有一些功能需要摘取到Tomcat的部分日志.没有合适的工具,也不想去网上找了,就自己写了一个. 简单的画了一下设计方案: 下面直接上代码 ...

  9. jquery 基础教程[温故而知新二]

    子曰:“温故而知新,可以为师矣.”孔子说:“温习旧知识从而得知新的理解与体会,凭借这一点就可以成为老师了.“ 尤其是咱们搞程序的人,不管是不是全栈工程师,都是集十八般武艺于一身.不过有时候有些知识如果 ...

  10. SQL Server调优系列基础篇(并行运算总结)

    前言 上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符.联合运算符的优化技巧. 本篇我们分析SQL Server的并行运算,作为多核计算机盛行的今天,SQL Server也会适时调整自 ...