PHP基础 (麦子学院 第二阶段)

zendstudio 10.0破解版,新建完项目后,首先修改项目的编码方式,统一改成utf-8 (选中项目,再右键properties:Text file encoding)。修改字体大小。

apache 安装:httpd-2.2.17-win32,安装成功后访问apache服务器:http://127.0.0.1 localhost; apache配置文件:httpd.conf(在apache/conf/目录下) :ServerRoot:apache的安装目录,Listen 80:端口号,DocumentRoot:apache的默认主目录htdocs;Directory:浏览目录;(当需要修改apache的默认主目录的时候,需要修改 DocumentRoot 和 Directory 这两项。),DirectoryIndex :index.html 默认首页。

webServer工作原理:用户输入网址后,首先通过本地的DNS服务器将输入网址转换成目的ip地址后返回给浏览器;浏览器再根据这个ip地址请求相应的某个目录下的某个页面,通过http request发送请求,web服务器接到请求后,首先在默认主目录中搜索是否有请求的页面文件,如果没有找到,通过http response发送给浏览器一个没找到的响应(响应的是html标记,浏览器可以解析html标记)。如果找到了,首先apache查看请求文件的扩展名,apache只能处理html,css,javascript这样静态的文件,如果是这些静态文件apache直接将找到的结果通过http response 返回给浏览器。如果请求的是.php为后缀的文件,apache就处理不了,这是就将控制权移交给php引擎,php引擎具有处理,解析php代码的能力,它会将php代码解析的结果以html代码的形式返回给apache服务器,apache服务器接收到php引擎的响应后,再通过http响应给用户浏览器。

php版本:php-5.4.0-win32,解压完成后将php.ini.development文件重命名为php.ini(php的配置文件),这样php安装完成。绑定php和apache:第一步,加载php5模块,在apache配置文件中加入:LoadModule php5_module "php安装路径\php5apache2_2.dll" ,第二步,加载php配置文件所在目录,在apache配置文件中加入:PHPIniDir "php安装目录" ,第三步,告诉apache什么时候什么类型的文件需要交个php引擎来处理,在apache配置文件中加入:AddType application/x-httpd-php .php 把.php结尾的文件交给php引擎来处理。对apache配置文件做了更改后需要重启apache服务器。phpinfo(),测试一下。

==========第4个视频开始讲授 PHP基础语法:变量
PHP标准风格(推荐风格):<?php 代码段;?> PHP每句代码以分号 ; 结尾。 短风格(需要php配置文件中short_open_tag=On,再重启apache):<? 代码段; ?> 长风格<script language='php' 代码段; /script> ASP风格(需要php配置文件中asp_tag=On,再重启apache):<% 代码段; %>
PHP中的注释:单行://    #     多行:/* */

PHP文件扩张名:.php 。
PHP文档组成:在php文件中可以同时书写html、css、javascript/jquery、PHP代码(在脚本中的任意位置都可以写PHP代码,在脚本中不只有PHP代码的时候,<?php ?>标记一定要成对出现。当文档中只有PHP代码时,结束标记不要写。);emmet插件:html:xt + tab键,自动生成html文件基本模板。

PHP变量:在程序执行期间可以变化的量,用变量保存值。以 $ + 变量名称 声明变量,变量名称遵循驼峰标记法(小驼峰:首字母小写,以后没有个单词第一个字母大写;大驼峰:每一个单词的首字母都大写),或下划线法:每个单词之间用下划线分隔。php的变量名称严格区分大小写,$a和$A是不同的两个变量。当变量名称重复的时候,相当于对变量重新赋值,后面的会覆盖之前的值。php是弱类型语言,变量可以不声明直接使用。变量赋值:$变量名=值; $a=12; 使用变量名称$a,就可以使用变量。在浏览器中,查看变量的值:echo $a; 当PHP脚本中有头信息时,通过 header('content-type:text/html;character=utf-8'); 来发送头信息,这句代码告诉浏览器,以utf-8的编码方式解析html文档。修改PHP配置文件中的error_reporting=E_ALL&~E_NOTICE,之后重启服务器,可以屏蔽掉脚本在执行过程中报出的“注意”信息。一次声明多个变量并且赋值相同:$i=$j=$k=$m=$n=1;一次输出多个变量的值:echo $i,$j,$k; 多个变量之间以逗号分隔。

php可变变量(等量代换的原则)。php引用赋值:& 取地址符,把变量在内存中的地址覆给另一个变量。$j=&$i; $i和$j指向同一个内存空间,对$i和$j任何一个的修改,都将改变另一个变量的值。变量销毁:unset(变量名)函数,销毁变量相当于引用内存空间的变量名不存在了,但保存变量的内存空间依然存在。

==========第7个视频开始讲授 PHP基础语法:数据类型
php中支持8中主要数据类型和3中伪类型。8种主要数据类型分3大类:标量类型(只能存储单一数据,有分为类,整型int\interger(带符号:-21亿到21亿,无符号:0到42亿,超过整型的存储范围,会产生溢出的现象,可以存储八进制数、十进制数、十六进制数。在显示的时候都是将八进制和十六进制的数,转换成十进制的数在浏览器上显示。),浮点类型float\double\real(浮点类型带有小数点或者科学计数法的写法,带有e或者E ,他的存储范围比整型大。),布尔类型bool\boolean(真:TRUE\true,假:FALSE\false。),字符串类型string(字符串定界符:单引号,双引号(双引号和单引号的区别:双引号解析变量,单引号不解析变量,单引号的执行效率快。当内容中含有定界符时,用转意符解决(\';\";\\;\$;\n换行;\r回车)。双引号解析所有转意符,单引号只能解析\\和\',这两个转意符。当页面中要出现大于号>,小于号<,单引号,双引号,不间断空格,都要把它们转换成html实体(进行html编码)。php引擎在解析变量的时候,会尽可能多的向后去取合法字符,认为取的合法字符越多,变量的含义就越明确,花括号的作用:将变量当做一个整体,{$变量名}或${变量名},在变量名称和花括号{}之间不要有空格。通过花括号{}对字符串中的制定字符做增删改查。字符串的下标从 0 开始。也可以用方括号[],把字符串string当做数组操作,下标从 0 开始,完成增删改查,每次只能增删改一个字符位置。),HereDoc,NowDoc(当要输出大段文本的时候,就需要用到这两个HereDoc和NowDoc,HereDoc以三个小于号开始<<<,就相当于定界符中的双引号,<<<名称,3个双引号后是名称,名称后直接回车,不能有空格。以名称结束,在结束名称之前,不能有任何的输出(在结束名称前不要有空格,必须顶格书写)。在HereDoc中的变量将被解析,在NowDoc中的变量将被原样输出,不进行解析。))中文在UTF8下,一个中文占3个长度。),复合类型(数组array,对象object),特殊类型(资源resource,空null\NULL:未声明的变量值为NULL,声明变量并且赋值为NULL,通过unset()函数注销过的变量。)。

3种伪类型:告诉函数可以接受哪些类型的参数。伪类型有3类:第一类,数值型munber:可以接受整数和浮点数。第二类,混合类型mixed:代表可以接收不同形式的参数。回调函数callback:

得到变量的数据类型:var_dump():将一个或多个变量的详细信息打印到浏览器。

 

 

==========第10个视频开始讲授 PHP基础语法:数据类型的转换
在php中主要支持两种数据类型的转换:显式转换(强制转换)和隐式转换(自动转换)。 

隐式转换(自动转换):变量根据上下文环境进行自动类型转换。其他类型转换成数值型(true转换成整型的 1 ,false转换成整型 0 ,null转换成整型 0 。字符串转换成数值型:以合法数字开始的字符串,取到第一个非法数字结束。(这个合法数字,可以是整型,浮点型(包括小数形式和科学计数法形式),正负都可))。以非法数字开头的字符串(即以字母开头的字符串),转换成 0 。其他类型转换成字符串型:数值类型直接转换成数值本身;true转换成 1 ,false转换成 空制符串,null转换成 空字符串。数组转换成字符串 Array。资源resource转换成 Resource id #数字。对象不可以直接转换成字符串。其它类型转换成布尔类型(找到转换为false的,其它的都会转换为true):整型0,浮点型0.0,空字符串''或者控制符串""或者'0',"0",null,空数组,这5类都将转换成false,其它转换都为true。 

显式转换(强制转换):分为两种:临时转换【(int\interger)->整型,(float)\(double)\(real)->浮点类型,(boolean)\(bool)->布尔类型,(string)->字符串类型,(unset)->空,(array)->数组,(object)->对象,资源类型不能进行强制转换。临时转换并没有改变这个变量的类型。通过函数的形式实现临时转换:intval($val):返回转换成整型的值,floatval \ doubleval($val):返回转换成浮点类型的值,strvar($val):返回转换成字符串的值,boolval($val):返回转换成布尔的值(php版本>5.5.0)。】和永久转换(永久转换会改变这个变量的类型)【settype($val, $type):设置变量的类型,type的可能值为:boolean \ integer \ float \ string \ array \ object \ null \,gettype($val):得到变量的类型(推荐用var_dump())。】。 

通过变量函数库检测变量类型,检测的结果为bool类型:是否为整型:(is_int($var),is_integer($var),is_long($var));检测是否为浮点类型:(is_float($var),is_double($var),is_real($var));检测是否是字符串类型:is_string($var);检测是否是布尔类型:is_bool($var);检测是否是标量:is_scalar($var);检测是否是数组is_array($var);检测是否是资源:is_resource($var);检测是否是对象:is_object($var);检测是否为空:is_null($var); 检测是否为数值型,或者字符串的数值(如:'1.1'):is_numeric($var);

 

==========第12个视频开始讲授 PHP基础语法:常量
常量:是一个简单值的标识符,和变量相反,在脚步执行期间该值不能改变,不能再对常量赋值。常量分为三类:系统常量,自定义常量,魔术常量。 

系统常量:是系统提供好的,拿过来可以直接使用的:PHP_VERSION \ PHP_OS \ M_PI 等; 

自定义常量:define($name, $value[,$case_insensitive=false]) 方括号表示可选; 注意:常量名前没有$ ;常量名称以字母或者下划线开始,尽量使用大写字母;常量可以在任何地方定义和使用;常量一经定义不能改变也不能取消定义;常量的值只能为标量(整型,浮点类型,布尔,字符串),虽说可以为resource资源类型,但尽量不要使用;常量默认是区分大小写的,如果需要不区分大小写,通过设置define函数的第三个参数为true来实现。
使用常量:第一种,可以直接写常量的名称,不要放到引号之间,不带$;第二种,constant($name);
检测常量是否已经被定义:通过defined函数检测常量名称是否被定义,返回真或者假; 

在PHP5.3.0以后可以使用 const 在类定义之外定义常量: const 常量名称=值; const定义的常量区分大小写;
得到所有已被定义过的常量:get_defined_constants(),返回的是关联数组;包括系统常量和自定义常量; 

魔术常量:__LINE__:返回文件中当前的行号;__FILE__:返回文件的完整路径和文件名,注意:如果用在被包含文件中(include文件中),则返回被包含的文件名。从PHP4.0.2起,__FILE__返回一个绝对路径,之前则返回相对路径。__FUNCTION__:返回函数名称,注意:自PHP5起常量返回该函数被定义时的名字(区分大小写),在PHP4中该值为小写;__CLASS__:返回类的名称,自PHP5起常量返回该类被定义时的名字(区分大小写),在PHP4中该值为小写;__METHOD__:返回类的方法名(区分大小写),PHP5.0.0新增;__DIR__:返回文件所在目录,如果用在被包含文件中,则返回被包含文件所在目录,PHP5.3.0新增;__NAMESPACE__:返回当前命名空间的名称(区分大小写),此常量是编译时定义的,PHP5.3.0新增;__TRAIT__:返回Trait的名字,区分大小写,Trait名包括其被声明的作用域,PHP5.4.0新增。 

 

==========第14个视频开始讲授 PHP基础语法:运算符

-3%8的值为-3,3%-8的值也为3,结果只和被除数的符号有关,和除数的符号无关。
前缀形式:++$var,--$var,先加减1,再执行;后缀形式:$var++,$var--,先执行,再加减1。对于数值型支持自增自减;布尔类型不支持自增自减;null类型支持自增不支持自减;字符串只支持自增,不支持自减;

字符串运算符:逗号,和点. (多个变量间用点.连接。)

赋值运算符:等号=。

两个等号==,只比较值是否相同。三个等号===,值和类型都要为相同才位置true;

逻辑运算符:
逻辑与:&&或者and,两个表达式都为true,结果才为true,注意:第一个表达式为false造成短路(不会计算第二个值);
逻辑或:||或者or,两个表达式有一个为true,结果为true,注意:第一个表达式为true造成短路;
逻辑非:!,取反的意思;
逻辑异或:xor,当两个表达式同为true或者false,结果为false,相反为true。

执行运算符:反引号``,PHP将尝试将反引号中的内容作为外壳命令来执行,与shell_exec()作用相同;
错误抑制符:@ ,注意:加在任何会产生错误的表达式之前;

三元运算符:exp1?exp2:exp3; exp1为真执行?之后的exp2,否则执行:之后的exp3; 另一种形式:exp1?:exp3;如果exp1为真则返回exp1,否则返回exp3;

 

==========第21个视频开始讲授 PHP基础语法:流程控制 

设置时区:通过函数的形式动态设置时区(只针对设置以后的当前脚本有效):date_default_timezone_get():得到当前的默认时区;date_default_timezone_set($timezone):设置时区,设置成功返回true,失败返回false,有三个时区可设置:PRC:中华人民共和国;Asia/Shanghai;Asia/Chongqing; 通过修改PHP配置文件date.timezone设置时区(针对所有脚本都有效),修改要重启apache服务器;

date($format[,$time=time()])(第二个参数为时间戳,通过time()函数得到。):得到当前服务器的日期时间;Y:代表4位的年,m:代表2位的月,d:代表2位的日,H:代表2位的小时,i:代表2位的分钟,s:代表2位的秒,w:返回一周内的多少天,0~6,0代表星期日;

PHP预定义变量(可以直接使用,所有的预定义变量都是数组):$_POST:HTTP POST变量,接受表单以POST方式发送的数据;$_GET:HTTP GET变量,接收以?形式传参的数据;$_FILE:HTTP 文件上传变量;$_SERVER:服务器和执行环境变量;$_EVN:环境变量;$_SESSION:会话变量;$_COOKIE:HTTP Cookies;$REQUEST:$_GET + $_POST + $_COOKIE;$GLOBALS:超全局变量,在全部作用域中始终可用的内置变量,包含了前面所有的值;

isset($var):检测变量是否被设置,只要变量有值,并且值不为空,isset返回true,否则返回false;
empty($var):检测变量是否为空,也就是转换成布尔类型false的那些情况(整型0,浮点型0.0,空字符串'',字符串'0',布尔false,null,空数组array(),共7个);

程序遇到 exit 或者 die ,将终止执行,不执行下面的语句;也可以在终止的同时向浏览器输出内容:die('输出内容')或者 exit('输出内容');

is_numeric($var):判断变量是否为数值型;

strcmp($str1, $str2):比较两个字符串的大小,在比较时一位一位来比较;如果$str1=$str2,返回0;如果$str1>$str2,返回1;如果$str1<$str2,返回-1; strcasecmp($str1, $str2):忽略大小写的比较大小,$str1=$str2,返回0;如果不等返回的是两个字符的ASCII差,如果前面比较出了结果,后面则不进行比较;

trim($string[, $charlist]):默认去掉字符串两端的空格,也可以通过第二个参数实现去掉两端指定字符(在$charlist里的字符,位置只在两端有效,中间不能去掉),返回过滤后的内容。

md5($string):计算字符串的md5散列值,返回加密之后的32位长度的字符串;
sha1($string):计算字符串的sha1散列值,返回加密之后的40位长度的字符串;

switch语句遇到break,结束整个执行,在switch中只能比较固定的值,switch可嵌套;

精确控制循环的次数的时候,用for循环。用break结束整个for循环;当有两层for嵌套的时候,用break 2 可以结束两层for循环,结束整个for循环。continue:结束当前循环,进入下次循环,continue后面也可以加数字,代表结束当前的几层循环;当在for循环中初始化多个循环条件变量时,第二个表达式中最后一个条件决定是否能执行循环体;for(;;)在第二个循环条件缺失的情况下,默认为真。endfor形式;

通过break结束while循环,continue代表跳过当次循环进入下次循环,endwhile形式,do-while没后endwhile形式。

通过break可以结束switch语句,结束for,while循环。continue在循环中代表结束当前循环,进入下次循环,在switch语句中continue和break等价。

exit或die,用于结束当前脚本执行。

 

==========第33个视频开始讲授 PHP基础语法:数组

posted @ 2018-08-14 03:17  dotNet_Fan  阅读(333)  评论(0编辑  收藏  举报