您的位置:

php学习小结(php总结)

本文目录一览:

php 的位运算总结

php的位运算很少会用到,但是用处很大,

在有些算法中会用到,在权限管理中也会经常用到,

对于理解计算机的世界也会有一定的帮助,所以得把这些重要但不常用的东西总结一下记录一下。

提到位运算,避不开的是二进制。

因为位运算是直接在内存做操作和运算,相较与直接拿两个变量做运算符肯定是更快的。

很多地方把二进制这玩意说得很晦涩,现在来以最简单的方式来总结一下,当然只算 int 范围内的数算了,超过了这个范畴程序员还不如拿这时间去学点别的。

说完以上总结,再来解释下什么是二进制,网上大把,

但只要记住,int范围内的数也就是我们大部分需要用到的数,都可以用二进制来表示。

我们生活中用到的计数方式为十进制,由个数位满10进1,

然后再开始重新计算,等十位满9再加一时,百位加一,十位归零。

二进制则只有两个数字来表示就是0和1,满2进1。

由32个位组成,虽然只有32个位但已满足了我们正常的需求了

比如说1转换为2进制原码,由于1是正数所以符号位为0,

原码反码补码都一个样。

1的原码:00000000 00000000 00000000 00000001

因手懒,太多0太丑用+拼接,'0* 8'代表8个0

2的原码:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二进制,

满2就得进1,最低位归0,向前加一。

再来解释下负数的原码反码和补码,就开始讲php的位运算了。

二进制复习完毕。下面开始讲讲php的位运算。

php一共有六种位运算,一种一种来讲。

可以这么理解,两个数的补码放在一起比较每个位(一共32个位),

可以得出另外一个数,这个数字的组成由比较的两位数字生成,

如果两个数的每个位数上的数字都等于1的话,

那得到的那个数的补码的同位为1,否则为0。

听着绕口,其实很简单,觉得还是比官网上的更容易让新手看懂

下面举例子:

首先来求-1和7的补码。7的原码就是补码。

两个补码都有了下面开始运算:

按照上面的说法, 每个位都有一样则 $a 的同等位则为1,刚好-1的补码和7的补码前面都不一样,就最后三位一样,所以刚好求得的 $a 的补码的最后三位是1而其他的都是0 ,刚好这个补码为正数,正好就是7。

其实就是和按位与相反,只要有1个为1,那就为1,如果都不为1,那就为0。

$a = -1|7 ;得出来的 $a 补码为32个1,但此时不能说 $a 就是-1,因为这只是补码,要转成原码再转成十进制数,补码-1,然后再翻转,再转出来,得到的其实也还是-1。

就是将这个数的补码全部翻转过来,包括符号位,0变1,1变0

取反的结果一定是整数变负数负数变正数,取正数的反时,

记得一定要从补码一步步转到原码再转成十进制数才是答案。

两个数的补码比较,同等位上的两数比较

,不一样时,则答案的补码的同位则为1,否则为0。

往左移符号位被挤走右边0补充,往右移动,符号位不动,

高位以符号位补充。二进制世界里往左移动其实是相当于乘以了2,

右移相当于除以了2。

不吹牛逼的说,这应该是互联网上最容易理解的php位运算的解释和二进制的解释了。

原文链接: php的位运算总结-PHP

php的优点总结 php有哪些优点

PHP优点:

1.入门快,有其它语言基础的程序员二周左右的时间就可以入门,一个月左右的时间基本上就可以开发简单的项目了。

2.开发成本低,PHP最经典的组合就是:Linux + Apache + MySQL + PHP。非常适合开发中小型的web应用,因为上手容易,所以开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。

3.PHP是解释性的脚本语言,写完代码以后即可以执行,不像c,java,c++等语言还需要去编译执行,相对来说比较节省时间。

4.相对来说,PHP程序员的薪水的平均工资要比c,c++,java程序员的平均工资要低一些,特别是对于中小型企业来说可以节约一些成本。

5.配置及部署相对简单一些,对比JAVA开发来说,JAVA开发的配置就复杂多了,什么Structs、Spring、Hibernate、Tomcat等等很多地方都需要配置,甚至你在程序中每写一个SQL语句都需要先在Hibernate中配置一下,有时重新部署一个class文件或jar文件还可能需要重启Web服务器(Tomcat或Resin或其它的Web服务器)使新部署的库文件生效。

PHP开发中主要是PHP自身的配置文件及Web服务器的配置(如Apache或Nginx或Lighttpd等),相对于JAVA来说还是简单一些,而且新修改了文件以后不需要重新启动Web即可以立即生效。

6.有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend Framework、CakePHP、CodeIgniter、symfony、thinkphp等,开源论坛有Discuz!、Phpwind等,开源博客WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。

内容扩展

1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换 PostgreSQL或者Oracle,支持N种数据库。(N = 10)

2. 语法简单,如果有学习C和Perl的很容易上手,并且跟ASP有部分类似。有成熟的开发工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。

3. 目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。

4. 有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smart template做模板层,如果是PHP 5.1的话,还能够使用PDO(PHP Data Object)来访问数据库。

5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持类似ASP.net的事件驱动的框架:Prado,支持类似Ruby On Rails的快速开发的框架:Cake等等,足够满足你的应用需求。

6. PHP 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。

7. 有成熟的社区来支持PHP的开发。

8. 目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。

9. 有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客 WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。

php知识框架总结

php知识框架总结

篇一:php基础知识点总结

PHP语言基础简单整理

1.开始结束标记的格式只有在没有判断语句时才能使用。

对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);

15.PHP连接数据库:

步骤: 一、建立连接------mssql_connect(server,uid,pwd);

二、指定database-------mssql_select_db(databasename);

三、执行sql------mssql_query($sql,$link);

四、处理记录集-------资源类型数据,格式:bof---数据---eof

五、以特定格式读取数据-----mssql_fetch_array()....

六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();

16.数组:php的数组由键值和value值组成

定义:$array = array("键值"="value","键值"="value","键值"="value");如果不给键值赋值,默认从0开始的int值

相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值

(2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值

(3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值

(4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值

(5)key(数组名);----返回当前指针指向的元素key值

(6)current(数组名);----返回当前指针指向的元素value值

(7)next(数组名);----挪动当前数组指针到下一步

(8)reset(数组名);----恢复数组指针,指向第0个元素

(9)end(数组名);----将指针挪向最后一个元素

(10)prev(数组名);----将指针向前挪动一位

(11)foreach(数组名 as $key=$value)

{

$key是键值,$value是value值,实现数组遍历

}

(12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中

(13)array_shift(数组名);----返回数组中第一个元素值

(14)array_pop(数组名);----返回数组最后一个元素值

(15)array_push(数组名,value);----向数组中追加元素

(16)array_unshift(数组名,value);----在数组最前面添加元素

(17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组

(18)count();----返回个数

(19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组

(20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true

(21)rsort(数组名);----从大到小,逆序排列数组value值

(22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组

(23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组

(24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。

(25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除

(26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组

(27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串

(28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组

(29)shuffle(数组名);----用于将数组进行随机排序

(30)array_sum(数组名);----对数值型数组元素值进行求和

(31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度

17.Cookie和会话控制:

Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。

存在server端的是session,存在client端的是cookie,它们用来存储全局变量。 设定Cookie值:setcookie("名","值");

通过Cookie数组取值:$_cookie["名"];

设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。

删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。 Cookie数组:setcookie("名[key]","值"); 使用foreach读取。

在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。

会话ID的传送

会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。

Cookie传送方式:

这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。

URL传送方式:

在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:

总结了现在php语言比较流行的几个原因

1、学习过程简单

PHP的语法与C,Perl,ASP或者JSP相比,对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都会变得很简单。

你可以快速地将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。

2、可与众多数据库连接

PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。

3、可扩展性

就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。

4、面向对象编程

PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

5、可伸缩性

传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。

除了以上优点,PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。

PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)

本文实例讲述了PHP日期与时间操作技巧。分享给大家供大家参考,具体如下:

Demo1.php

?php

//验证时间

//checkdate()

1.月份

2.日

3.年

//checkdate()

判断这个日期是否是合法的日期

//不合法的日期,试一试

if(checkdate(7,16,2010)){

echo

'这个日期是合法有效的';

}else{

echo

'这个日期是非法的。';

}

?

Demo2.php

?php

//date

--

格式化一个本地时间/日期

//date(),

彻底研究一下

//date()

可以存放两个参数,第一参数是日期和时间的格式化,[第二参数是时间戳]

//Y

表示四位数的年份,

y表示二位数的年份

//M

表示英文的月份缩写,m

表示阿拉伯数字的月份

//D

表示英文下的星期几缩写,d

表示阿拉伯数字的日

//第一个参数的格式化可以放一些无关紧要的字符串

//只要无关紧要的字符串不再

format

的目录里,就不会被识别

//echo

date('现在的日期是:Y-m-d');

//现在的日期是:2015-04-20

//时分秒

=

H

表示24小时制的小时,

//明明是

19

,为什么显示

11

点呢,东八区,差

8

个小时

//现在没有经过任何设置,所以时间在默认时区上

//echo

date('现在的日期是:Y-m-d

H:i:s');

//重点是年月日,时分秒

echo

date('r');

echo

date('现在的日期是:Y-m-d

H:i:sa');

?

Demo3.php

?php

//取得当前的时间,返回一个数组

//"sec"

-

Unix

纪元起的秒数

//"usec"

-

微秒数

//"minuteswest"

-

格林威治向西的分钟数

//"dsttime"

-

夏令时修正的类型

//print_r(gettimeofday());

//第一数组的元素就是时间戳

//gettimeofday()

就是取得的当前时间的时间戳

//$a

=

gettimeofday();

//sec

取得当前时间的时间戳

//转换成人可以看得懂的时间

//第二个参数,对于本例来讲,放与不放,是一样的。

//echo

date('Y-m-d

H:i:s',$a['sec']);

print_r(gettimeofday(0));

echo

gettimeofday(1);

?

Demo4.php

?php

//将时间戳转换成人可以看的懂的时间

//date()

函数的第二个参数就是时间戳

//如果第二个参数省略了,那么就返回当前时间

//如果第二个参数没有省略,那么就返回那个时间戳的时间

echo

date('Y-m-d

H:i:s',24554457865);

?

Demo5.php

?php

//getdate()

也可以转换时间戳

//print_r(getdate());

//Array

(

[seconds]

=

26

[minutes]

=

34

[hours]

=

10

[mday]

=

20

[wday]

=

1

[mon]

=

4

//[year]

=

2015

[yday]

=

109

[weekday]

=

Monday

[month]

=

April

[0]

=

1429526066

)

$t

=

getdate();

echo

$t['year'];

//传递一个时间戳

print_r(getdate(1029526066));

?

Demo6.php

?php

//直接获取当前时间戳

//echo

time();//1429526328

//这个

time()

可以调整时间

//大家可以发现

time()

很有用处,可以过去现在和将来

echo

date('Y-m-d

H:i:s',time()+60*60*8);

?

Demo7.php

?php

//获取特定指定时间的时间戳

//这是当前的时间戳

//echo

time();

//我要取得

2008-08-08

08:08:08

$beijing2008

=

mktime(8,8,8,8,8,2008);

echo

date('Y-m-d

H:i:s',$beijing2008);

?

Demo8.php

?php

//使用时间戳计算时间差

$now

=

time();//当前的时间戳

$wnow

=

mktime(0,0,0,8,16,2016);

//两个时间戳相减可以得到差秒

echo

round(($wnow

-

$now)/60/60,2).'相差这几个小时';

?

Demo9.php

?php

//将人可读的时间,字符串形式,转换成时间戳

$a

=

strtotime('2010-7-16

15:15:15')-strtotime('2010-7-16

15:14:15');

if($a

=

60){

echo

'请这位先生休息一会。';

}else{

echo

$a;

}

?

Demo10.php

?php

//获取当前文件的修改时间戳

echo

date('Y-m-d

H:i:s',getlastmod());

?

Demo11.php

?php

//配置系统环境变量

echo

date('Y-m-d

H:i:s');

echo

'br/';

//我开始设置时区

putenv('Tz=Asia/Shanghai');

echo

date('Y-m-d

H:i:s');

?

Demo12.php

?php

//putenv('Tz=Asia/Shanghai');

//获取当前时区

echo

date_default_timezone_get();

echo

'br/';

//开始配置默认时区

date_default_timezone_set('Asia/Shanghai');

echo

date('Y-m-d

H:i:s')

;

echo

'br/';

echo

date_default_timezone_get();

?

Demo13.php

?php

date_default_timezone_set('Asia/Shanghai');

//"tm_sec"

-

秒数

//"tm_min"

-

分钟数

//"tm_hour"

-

小时

//"tm_mday"

-

月份中的第几日

//"tm_mon"

-

年份中的第几个月,从

开始表示一月

//"tm_year"

-

年份,从

1900

开始

//"tm_wday"

-

星期中的第几天

//"tm_yday"

-

一年中的第几天

//"tm_isdst"

-

夏令时当前是否生效

print_r(localtime(time(),true));

//Array

(

[tm_sec]

=

37

[tm_min]

=

15

[tm_hour]

=

19

//[tm_mday]

=

20

[tm_mon]

=

3

[tm_year]

=

115

//[tm_wday]

=

1

[tm_yday]

=

109

[tm_isdst]

=

)

?

Demo14.php

?php

//返回时间戳和微秒数

//怎么计算页面运行加载时间

//页面打开的时候获取一个时间

//页面结束的时候获取一个时间

//用结束的时间减去打开的时间,那么就是运行时间

//

list($a,$b)=explode('

',microtime());

//

echo

$b;

function

fn(){

list($a,$b)=explode('

',microtime());

return

$a+$b;

//返回出精确的秒数

}

//在页面打开的时候,获取一个时间

$start_time

=

fn();

for($i=0;$i10000000;$i++){

//

}

//页面结束的时候,获取一个时间

$end_time

=

fn();

echo

round(($end_time

-

$start_time),4);

?

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。