admin管理员组

文章数量:1794759

【PHP】最详细PHP从入门到精通(一)

【PHP】最详细PHP从入门到精通(一)

转载来自:wwwblogs/liuyongqi/p/6885669.html

 

目录

PHP简介和基本知识                                                                                   

PHP中的入门知识                                                                               

PHP中的运算符                                                                                         

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

【常见服务器】

常用的Web服务器有IIS、Apache、Tomcat、Jboss、Resin、Weblogic、WebSpher 。

1、IIS:IIS服务是Windows产品自带的一种免费的Web服务器,安装配置简单,主要解析的是ASP程序代码,对于小型的、利用ASP编程的项目,可以采用其作为Web服务器。一般可以跟Apache整合起来使用。这种服务在配置过程中需要注意权限的问题。

2、Apache:世界排名第一、免费开源的Web服务器软件,可以安装运行在绝大多数的计算机平台上,支持大多数语言开发的B/S结构软件。一般情况下Apache与其他的Web服务器整合使用,功能非常强大,尤其在静态页面处理速度上表现优异。

3、Tomcat:Tomcat是Apache下的一个核心子项目,是使用量较大的免费的JAVA服务器。主要处理的是JSP页面和Servlet文件。Tomcat常常与Apache整合起来使用,Apache处理静态页面,比如Html页面,而Tomcat负责编译处理JSP页面与Servlet。在静态页面处理能力上,Tomcat不如Apache。由于Tomcat是开源免费、功能强大易用的,很多JAVA的初学者都喜欢用它。当然,也有不少中小企业用其与Apache整合做Web服务器。熟练掌握Tomcat的使用是非常必要的。可以这么说,熟练安装配置Tomcat是软件测试工程师的必备技能。

4、Jboss:Jboss是RedHat的产品(RedHat于2006年收购了Jboss)。与Tomcat相比,Jboss要专业些。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范,本身不支持JSP/Servlet,需要与Tomcat集成才行。一般我们下载的都是这两个服务器的集成版。与Tomcat一样,Jboss也是开源免费的。Jboss在性能上的表现相对于单个Tomcat要好些。当然并非是绝对的,因为Tomcat做成集群,威力不容忽视。Jboss没有图形界面,也不需要安装,下载后解压,配置好环境变量后即可使用。

5、Resin:Resin是CAUCHO公司的产品,它也是一个常用的、支持JSP/Servlet的引擎,速度非常快,不仅在表现在动态内容的处理,还包括静态页面的处理上,Tomcat、Jboss在静态页面上的处理能力明显不足,一般都需要跟Apache进行整合使用。而Resin可以单独使用,当然Resin也可以与Apache,IIS整合使用。

6、Weblogic:WebLogic是BEA的产品,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。与前面的几种小型Web服务器相比,更具专业性,但安装配置也更为复杂。WebLogic是一个商业的软件,使用是收费的,费用还挺贵的。 

7、WebSphere:WebSphere是IBM的产品,是因特网的基础架构软件,也就是我们通常所说的中间件。它使企业能够开发、部署和集成新一代电子商务应用(如B2B的电子交易),并且支持从简单的Web发布到企业级事务处理的商务应用。比WebLogic更专业,当然价格也更贵。一般部署在IBM专业的服务器上。

【常见的数据库】 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是一种弱类型语言,变量其实并不需要声明,可以直接给变量赋任何类型的值; ③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(定界标识符)     //定界标识符声明字符串,通过<<<(定界标识符)开始     //遇到定界标识符结束!!!前面连一个空格都不能有!     //定界标识符可以是任意字母,只需要保持开始和结束一致即可。 ④三种方式的区别:     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 header ("Content-Type:text/html; charset=utf-8"); $num=1; $num="哈哈"; echo $num; $num1=$num2=$num3=5; echo $num1; echo isset($num1); var_dump(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=<<<str 456 str; echo $str3; function func1(){ define("NUM",12,true); } func1(); echo "<pre>"; print_r(get_defined_constants()); 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();【流程控制语句】 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>";

    未完、待续。。。

    本文标签: 入门详细PHP