设为首页 收藏本站
查看: 815|回复: 0

[经验分享] 【PHP】最详细PHP从入门到精通(一)

[复制链接]

尚未签到

发表于 2017-12-29 13:12:37 | 显示全部楼层 |阅读模式
  PHP从入门到精通
  (一)PHP简介和基本知识
  PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。     


首先,我们来了解一些关于PHP的一些基础知识
  【静态网站与动态网站】
  1、静态网站:(纯HTML页面,页面固定,不会变化),没有与后台服务器的交互,没有数据库的支持;
  2、动态网站:(可以根据交互情况动态显示不同的内容),需要与后台服务器进行数据交互,需要数据库的支持。
  【支持动态网站的语言】
  Java----->jsp
  PHP----->php
  asp----->asp
  【常见服务器】
  Apache:阿帕奇公司旗下服务器,用于解析PHP类网站;
  Tomcat:阿帕奇公司旗下的另一款服务器,用于解析JS类网站;
  【常见的数据库】
  MySQL、Access、Oracle、SQLServer……
  我们PHP一般配合MySQL使用。当然PHP可以连接几乎所有主流数据库。
  【B/S  C/S】
  B/S结构:(Browser/Server,浏览器/服务器模式)。用户只需要通过浏览器即可访问的网站,大部分操作功能集中在后台服务器。
  C/S结构:Client/Server结构是客户端和服务器结构。用户需要安装客户端。客户端可以分担一定的操作功能。
  【常见的开发PHP集成环境】
  wamp:Windows+Apache+MySQL+php;
  lamp:linux+Apache+MySQL+php;
  PHPstudy:
  PHPserver:
  PHP开发首选Linux系统,但是PHP能够友好的兼容支持各种操作系统(Windows,Linux,macOs、Unix……);

PHP中的入门知识
  【PHP标记的种类】
  PHP文件中,如果使用php语法,必须将PHP语言放到标记当中。PHP支持如下四种标记方式:
  ①<?php?>这是PHP的官方推荐写法,也就是我们主要采用的写法!这种标记可以插入到HTML文档的任意位置;
  >>>注!!!:如果页面中只有PHP语言,推荐省略结束标记?>
  原因:空格部分……
  ②<script language="php"></script>长标记写法:总是可以使用,但是,我们不推荐。
  ③<??>短标记写法。默认不开启,需要修改php.ini文件中“short_open_tag=On”打开。但是,由于与HTML标签冲突,不推荐使用。
  ④<% %>ASP风格,默认不开启,需要修改php.ini文件的"asp-tag = On"打开,但是和ASP,JSP中的标记冲突,不推荐
  【PHP中的指令分隔符;】
  1、PHP中的"结构定义语句"(分支、循环、类、函数等带{}的),不需要使用分号结尾。
  2、PHP中的"功能执行语句",(不用{}结尾的),必须使用分号结尾。
  3、特例:最后结束标签?>前的最后一条语句,可以省略分号。
  //单行注释
  /*
  * 多行注释
  */
  /**
  * 文档注释
  */
  #脚本注释
  【PHP中的变量】
  ①PHP中的变量,声明与使用,必须使用$开头。
  ②PHP是一种弱类型语言,变量其实并不需要声明,可以直接给变量赋任何类型的值;
  ③PHP中可以使用连等同时声明多个变量。而不能使用逗号分隔。
  eg:$num1=$num2=$num3=5;
  ④常用变量函数:
  unset():删除并释放变量;
  isset():检测变量是否设置;
  empty():检测变量是否为空(未设置或值为Null都算空);
  ⑤变量的命名:只能有字母数字下划线组成,开头不能是数字。而且,PHP中变量区分大小写!!
  $name,$Nnme,$NAME都是不同变量;
  但是,PHP的内置函数不区分大小写!echo EcHo都是有效的。
  【PHP中的变量类型】
  ①PHP支持8种数据类型:
  4种标量类型:布尔型Boolean  整形integer 浮点型float/double  字符串string
  2种复合类型:数组Array  对象Object
  2种特殊类型:资源Resource 空null。
  ②整形的范围从-2^32~-2^32-1,超出这个范围,自动转为浮点型。
  【PHP中算false的情况!!!】
  1、Boolean false
  2、整形 0
  3、浮点型0.0
  4、字符串"" "0"("0.0" "0000"都算对)
  5、空数组
  6、空对象只在PHP4版本算false,其他版本都算true。
  7、Null和尚未定义的变量
  8、所有资源都算对!!(除PHP4,所有对象也算对)
  【PHP中字符串的声明】
  PHP支持3种方式声明字符串:
  ①'':如不需要解析变量,单引号执行效率更快(细微差别)
  ②"":习惯上比较常用
  ③<<<(定界符):$str=<<<s(定界标识符)
  //定界标识符声明字符串,通过<<<(定界标识符)开始
  //遇到定界标识符结束!!!前面连一个空格都不能有!
  //定界标识符可以是任意字母,只需要保持开始和结束一致即可。
  s;
  ④三种方式的区别:
  a:定界符功能默认与双引号相同。定界符中可放双引号。
  b:单引号中,不能解析变量。而双引号、定界符都可以解析变量。
  注意:双引号中解析变量时,变量名应使用空格分隔,推荐使用{}包起来。
  c:各引号中可互相套用,但是不能放与自身相同的引号。
  d:单引号中,不能使用转义字符(但是除了'本身,转义字符\本身),双引号中,可以使用转义字符。
  【PHP中的伪类型】
  伪类型:并不是一种真实存在的数据类型,它的存在仅仅是用来告诉程序员可以是那些、那种数据类型。常用于撰写帮助文档时使用:
  mixed:代表参数可以是多种数据类型;
  Number:代表参数可以是integer或者float;
  callback:代表参数可以是一个回调函数;
  【PHP中的数据类型转换】
  1.自动类型转换:表示运算的时候,Boolean、Null、String等类型,会自动转为integer或float类型。
  Null——>0
  true——>1
  false——>0
  string——>转非数值前的数字,没有转为0
  2.强制类型转换:根据我们的需要,强制将变量转换为其他类型的变量;
  ①使用()声明新类型强转;
  ②使用settype();函数强转;
  bool settype(mixed var,String type);第一个参数表示任何类型的变量;第二个参数表示字符串类型的数据类型,返回Boolean结果。
  ③两种方式区别:
  第①种,是将转换后的结果,赋给新变量;
  第②种,直接修改了原变量的数据类型;
  $新变量=(新类型)$原变量;
  //新类型,可以使用全拼,也可以使用缩写
  (int),(integer) - 转换成整型
  (bool),(boolean) - 转换成布尔型
  (float),(double),(real) - 转换成浮点型
  (string) - 转换成字符串
  (array) - 转换成数组
  (object) - 转换成对象
  bool settype(mixed var,String type)
  【PHP判断变量类型的测试函数】
  is_bool():判断是否是布尔型
  is_int()、is_integer()和is_long():判断是否为整型。
  is_float()、is_double()和is_real():判断是否为浮点型
  is_string():判断是否为字符串
  is_array():判断是否为数组
  is_object():判断是否为对象
  is_resource():判断是否为资源类型
  is_null():判断是否为null
  is_scalar():判断是否为标量
  is_numeric():判断是否是任何类型的数字和数字字符串
  is_callable():判断是否是有效的函数名
  【PHP中的输出语句】
  echo "……";输出变量的值。
  var_dump(num);输出变量的数据类型和值[和一些其他信息]。
  print_r();专用于打印数组。
  【PHP中常量的定义和使用】
  1、常量的定义:bool define(string 常量名,mixed任何类型的常量值[,bool 是否区分大小写]);
  2、常量的注意事项:
  ①常量定义只能使用define()函数;
  ②常量名,原则上要求必须使用大写声明。而且必须不能使用$声明($只能是变量);
  ③常量声明以后,默认全局范围有效,没有作用域之说。
  ④常量不但不能改,而且不能删!unset,settype等函数均无效。
  ⑤常量默认区分大小写,但是可以在声明常量时,将define函数的第三个参数改为true,即可改为不区分大小写。
  ⑥常量必须使用define()定义后才能使用。如果使用未声明的常量,则默认转为常量字符串。但是,会报警告!
  var_dump(NUM);————>String "num"
  ⑦常量的值,只能是标量Boolean、String、integer、float。
  3、可以使用constant("")读取常量值,没卵用!
  可以使用get_defined_constants(),获取已定义的常量!包含系统自定义的N多个常量。
  代码示例:
  

<?php ("Content-Type:text/html; ");$num=1;$num="哈哈";echo $num;$num1=$num2=$num3=5;echo $num1;echo isset($num1);(empty($num1));$isTrue="";if($isTrue){echo "这是true";  }
else{echo "这是false";  }
echo "<br/><br/><br/>";$str1='hahah{$num1}hahah\'ah1 ';echo $str1;$str2="hahahhah{$num1}ahah2";echo $str2;$str3=<<<str123  456
  789
  
str;
  echo $str3;
  

  function func1(){
  ("NUM",12,true);
  }
  func1();
  echo "<pre>";
  (());
  echo "</pre>";
  #var_dump(num);
  


PHP中的运算符
  【运算符】
  1、算术运算符:
  +,-,*,/,%,++,--
  2、赋值运算符:
  = += -= *= /= %= .=(连接字符串)
  3、比较运算符:
  <  >  <=  >=  ==  ===  <>或!=  !==
  ==:要求值相等,而不需要数据类型相等;
  ===:要求之和数据类型都相等;
  !=:只比较值,值相等为false;
  !==:比较值和类型,都相等为false;
  4、逻辑运算符:
  and/&& or/|| not/! xor(异或)
  &&和||进行运算的时候会发生短路,当左侧判断出结果的时候,右侧不再执行(&&左侧为假时,结果为假;||左侧为真时,结果为真)
  xor:逻辑异或。两边只有一个对的结果为true;两边都对或者都错结果为false。
  5、位运算符:将10进制转为2进制,然后在进行运算。
  &:按位与。转成2进制后,两个都为1,结果才为1。eg:12&12——>1100&1100=1100=>12;
  |:按位或。转成二进制之后,有一个为1,就是1;
  ^:按位异或。转成2进制后,两个不相同同为1;都为0或都为1,结果为0;
  ~:按位取反转成2进制后,所有位数取反,再转为10进制数输出(!!!!!规律:即~n——>-(n+1))
  <<:按位左移:转成二进制后,左移几位,右边空余位数补0。(!!!!规律:num<<n——>num*2^n)
  >>:按位右移:转成二进制后,右移几位,左边空余位数补0。(!!!!规律:num>>n——>num/2^n)
  6、其他运算符
  ?::表达式1?表达式2:表达式3:表达式1成立执行表达式2,否则执行3。
  ``:调用系统都是环境下的命令行并执行,但是由于安全性以及跨平台性,我们并不提倡使用:eg:`ipconfig`
  @:错误信息控制符。可以临时屏蔽掉一些小的错误信息。但是不提倡使用!
  =>:数组下标指向
  ->:对象
  【可变变量】
  在一个 变量名前边,再加一个$符号。即可将第一个变量的值,作为新变量的名字。
  $hello="hello1";
  $$hello="world";//$hello1
  $$$hello="liu";//$world
  &:取址符号。变量名前加&符号,取到当前变量的引用地址(变量在内存中的地址)。
  $num2=&$num1;//取出num1的地址给num2,相当于我们说的引用数据类型。num2和num1的值将同时改变。
  代码示例:
  

PHP中,利用代码实现a和b的交换$a=10;$b=8;#智障级  $c=$a;
  $a=$b;
  $b=$c;
  #凡人级
  $a=$a+$b;
  $b=$a-$b;
  $a=$a-$b;
  #神经级
  $a=$a^$b;
  $b=$a^$b;//$a^$b^$b
  $a=$a^$b;//$a^$b^$a
  /*
  * 分析:
  * 8-------00001000
  * 10------00001010
  * ^-------00000010
  */
  echo $a.",".$b;
  


PHP中分支和循环结构
  【PHP中的分支结构】
  if中的判断条件:详见上面讲到的判断条件;
  elseif:PHP中elseif语句可以连写,也可以分开写;
  switch:PHP中的switch结构,采用松散比较(==)判断,与Js不同!!!!!
  >>>注意:php中,continue可以用于switch结构,作用与break相同!
  PHP中continue和break可以后接数字,表示跳过几层循环或switch。例如:break 3代表终止3曾循环
  do-while:循环最后,必须加;分号。
  >>>eg:do{}while();
  具体结构可大致参阅博主之前分享的Js中的循环
  【流程控制语句】
  1、break:终止本层循环;break后面可以接数字,表示终止几层循环    break 3;终止3层循环
  2、continue:跳过本次循环;continue后面可以接数字,表示跳过几层循环
  3、return:结束函数,并返回值(如果有),但是只有函数中能用,脚本中不建议使用return
  4、exit(mixed 结束语)/die(mixed 结束语)函数:直接结束当前的PHP脚本!如果有参数传入,则先打印出结束语,然后结束当前脚本。
  代码示例:
  

//利用分支循环结构实现表格并填入指定数字。  
echo "<table style='width: 500px; border: 1;  border-collapse: collapse; '>";
  for($i=0;$i<10;$i++){
  if($i%2!=0){
  echo "<tr bgcolor='red'>";
  }else{
  echo "<tr bgcolor='green'>";
  }
  for($j=0;$j<10;$j++){
  echo "<td style='border: 1px solid black';>";
  echo $i.$j;
  echo "</td>";
  }
  echo "</tr>";
  }
  echo "</table>";
  

  本期分享就到这里,觉得内容不错的小伙伴请点推荐,欢迎大家在评论下方评论区与博主互动,谢谢大家!
  未完、待续。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429337-1-1.html 上篇帖子: PHP 调用 Go 服务的正确方式 下篇帖子: 漫谈PHP代码规范
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表