大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《10条PHP编程习惯》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

1、使用单引号括起来的字符串

当使用双引号来括字符串时,PHP解释器会对其进行变量替换、转义等操作,如/n。如果只想输出一个基本的字符串,用单引号会节省一些资源。当然,如果需要进行变量替换的,那就必须用双引号了。

2、字符串的输出

以下哪一条语句的运行速度最快?

printHimynameis$a.Iam$b$$

echoHimynameis$a.Iam$b$$

echoHimynameis.$a..Iam.$b;

echoHimynameis,$a,.Iam,$b;

echoHimynameis,$a,.Iam,$b;

最后一条的运行速度是最快的。print比echo要慢,在字符串中进行变量替换时会慢,而连接字符串要比用逗号连接来得慢,最后一句则是第一个习惯的体现。所以,不在字符串中进行变量替换不仅会加快程序运行速度,也会让你的代码在任何语法高亮显示的编辑器中显得更为易懂(变量会被高亮显示出来)。很少人知道echo的参数可以用逗号连接,且速度会比字符串连接要来得快。最后再用上第一个习惯,那这条语句就非常好了。

3、在数组索引中使用单引号

正如你在上面的测试题中所看到的,$x[sales]从严格意义上来说是错误的,索引应该被括起来,即$x[sales]。这是因为PHP会将没有括起来的索引辨认为裸字符串,并把它解释为一个常量。当找不到该常量的定义时,才将其解释为一个字符串,所以这条语句才是可运行的。把索引括起来可以省去这部分工作,如果将来正好要用这一字符串定义常量时也就不会有错误了。

4、不使用开始标志的缩写形式

你正在使用这样的符号吗?

5、尽量不要使用正则表达式

在进行常规的字符串操作时,尽可能不要去使用正则表达式(preg和ereg系列函数)。str_replace函数要比preg_replace快得多,甚至strtr函数也要比str_replace来得快。省去这些不必要的麻烦吧,你的老板会感谢你的。

6、不要在循环声明中使用函数

这个问题不单单出现在PHP中,你可以在其他语言的代码中经常看到:

差:for($i=0;$icount($array);$i++){}

好:$count=count($array);for($i=0;$ilt;$count;$i++){}

如果在循环声明中使用了count函数,那每次循环都会调用一次。如果循环次数很多,会浪费非常多的时间。

7、不要使用register_globals和magicquotes

老版本的PHP在安装时会默认打开这两个功能,这会引起安全漏洞、编程错误及其他的问题,如只有用户输入了数据时才会创建变量等。如今这两个功能都被舍弃了,每个程序员都应该避免使用。

8、一定要对变量进行初始化(这里的初始化指的是声明)

当需要没有初始化的变量,PHP解释器会自动创建一个变量,但依靠这个特性来编程并不是一个好主意。这会造成程序的粗糙,或者使代码变得另人迷惑,因为你需要探寻这个变量是从哪里开始被创建的。另外,对一个没有初始化的变量进行递增操作要比初始化过的来得慢。所以对变量进行初始化会是个不错的主意。

9、对代码进行注释

这个问题已经提过很多次了,但再多次也不够。我知道有些地方是不聘用不对代码进行注释的程序员的。我在前一次工作面试后和副总、面试官一起浏览我写的代码,当他们对我所做的代码注释印象深刻,还了解了一下我的这一习惯。一天之后,我得到了这个工作。

我知道有些自称为PHP大师的人声称自己的代码写得很好,不需要添加什么注释。在我看来,这些人都是垃圾。学一写注释的规范和技巧,熟悉一下phpDocumentor或Doxygen之类的注释辅助软件,都是值得的。

10、遵循一个编程规范

关于这一点,是你需要在面试中询问你潜在的老板的,问问他们正在使用什么编程规范。PEAR?Zend?内部规范?要提及你正在使用的编程规范,不管是你自己创建的,还是目前普遍流行的一种。对于PHP这种松松垮垮的语言来说,如果没有一个好的编程规范,那么那些代码就会看起来想一堆垃圾。发臭的,令人作呕的垃圾。一些基本的规范包括空格规范、打括号匹配、命名风格等。这对任何一个追求高质量的代码的人来说都是必须的。

有人说:我讨厌你的4个空格的缩进。我要说,什么?用4个空格来缩进?这比用制表符过占用3个字符的空间。更重要的是,只要是使用比记事本高级的编辑器,你可以自定义制表符的缩进值。所以每个程序员都可以以其最习惯的方式来看代码。可以时设置为4,也可以设置为0(如果你是个受虐狂)。反正我不在乎,但你就是不能用空格来缩进!

职场资讯网扩展阅读

新浪网技术PHP工程师部笔试题目


大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《新浪网技术PHP工程师部笔试题目》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

一、php基础知识

1、strlen与mb_strlen的作用分别是什么

2、下列哪个函数是用正则表达式将字符串分割到数组中

A、Split

B、implode

C、explode

D、join

3、写出下列程序的输出结果

$x=87;

$y=($x%7)*16;

$z=$x$y?1:0;

echo$z;

?

4、写出smarty模板的特点

5、写出下列几个预定义全局变量的作用

$_SERVER['DOCUMENT_ROOT']

当前运行脚本所在的文档根目录。在服务器配置文件中定义。

$_SERVER['HTTP_HOST']

当前请求的Host:头部的内容

$_SERVER['REMOTE_ADDR']

正在浏览当前页面用户的IP地址

$_SERVER['HTTP_REFERER']

链接到当前页面的前一页面的URL地址

$_SERVER['SERVER_NAME']

当前运行脚本所在服务器主机的名称

$_FILES

包含有所有上传的文件信息。

$_FILES['userfile']['name']

客户端机器文件的原名称。

$_FILES['userfile']['type']

文件的MIME类型,如果浏览器提供此信息的话。一个例子是image/gif。不过此MIME类型在PHP端并不检查,因此不要想当然认为有这个值。

$_FILES['userfile']['size']

已上传文件的大小,单位为字节。

$_FILES['userfile']['tmp_name']

文件被上传后在服务端储存的临时文件名。

$_FILES['userfile']['error']

和该文件上传相关的错误代码。

6、include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?

7、写出一个能创建多级目录的PHP函数

二、操作系统

1请解释下列10个shell命令的用途

top、ps、mv、find、df、cat、chmod、chgrp、grep、wc

2、写出下列服务的用途和默认端口

ftp、ssh、http、telnet、https

三、面向对象

1、写出php的public、protected、private三种访问控制模式的区别

2、写出下列程序的输出结果

classa{

protected$c;

publicfunction

a{

$this-c=10;

}

}

classbextendsa

{

publicfunctionprint_data{

return

$this-c;

}

}

$b=newb;

echo$b-print_data;

?

3、设计模式考察:请用单态设计模式方法设计类满足如下需求

请用PHP5代码编写类实现在每次对数据库连接的访问中都只能获得唯一的一个数据库连接,具体连接数据库的详细代码忽略,请写出主要逻辑代码

四、数据库

1、写出下面2个PHP操作Mysql函数的作用和区别

mysql_num_rows

mysql_affected_rows

2、sql语句应该考虑哪些安全性?

3、简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)

五、系统分析

假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?

提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥

习惯性跳槽?是病,得治!


大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《习惯性跳槽?是病,得治!》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

某求职者在论坛上说自己两年内至少换了5份工作,不得不说也太勤快了吧?说专业点,这叫“习惯性跳槽”。任何一个岗位,只要用心,都可以把工作做成“花”。文员的工作确实像打杂,如果正好又是支持部门的文员的话,工作内容就更繁琐了。但是,就算做到行政经理,也仍然是打杂,只不过是高级打杂而已。心态对了,工作自然就有奔头了。

有个职场故事,讲的是一位应届毕业生,第一份工作是专门接传真,空闲的时候帮大家订盒饭。这是一个看上去没有任何技术含量的活,可这位学生却做得有滋有味,她在交传真文件前,已把每一份传真分门别类地进行了汇总,每半月和一个月的时候做一次统计,发现了公司客户的很多规律,并在适当的时候向公司提了出来。半年后,她被调到了公司重要业务部门。

所以,只要用心,在任何一个岗位都能有所作为。而你目前确实需要静下来好好分析一下自己,究竟是自己的心太浮燥,还是没找到合适的岗位。分析后,对症下药,找到适合自己的工作,好好干下去。(完)

影响面试的5个坏习惯


大学生就业难已经成为社会一个难以回避的问题,同时求职技巧也就显得尤为重要,扬长避短掌握技巧是关键。感谢阅读《影响面试的5个坏习惯》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

1、迟到失约

守时是一个非常重要的礼节,如果你在面试这么重要的环节迟到,不管是因为什么原因,对方对你的第一印象肯定不好,也会觉得你对这份工作没有热忱。因此在面试的时候最好提前10-15分钟到达是最好的。

2、数落别人

在面试的过程中数落以前的上司或者同事就是犯了大忌哦,如果将自己跳槽的原因怪在自己原来的单位上,这样只会让对方觉得你推卸责任,并且是一个记仇的人。

3、掺水说谎

在求职过程中,如果你对面试官说谎称自己的经验有多丰富,胡编乱造一些工作业绩,如果被发现后,你的道德品质也将受到质疑,你自己也会感觉很丢脸。

4、短话长说

要知道一句话言多必失,因此在回答面试官的问题时,最好是以精简为主,抓住重点表达,做到谈吐自如。这样对方也会认为你是一个善于抓重点,办事效率比较高的人。

5、欠缺目标

很多企业非常看重员工的自身职业规划,因此在面试的时候可以将自己对应聘岗位的看法,表达自己对该岗位的工作热情。同时不要有太多的求职目标,否认对方认为你只是想单纯的工作,并没有其他太多的追求。

如何使用PHP session


在求职过程中需要注意的问题您知道?需要的求职技巧您知道?职场小编告诉你,在求职过程中切忌夸夸其谈,切忌过于自信,切忌自我炫耀,切忌左顾右盼以及切忌形象糟糕。感谢阅读《如何使用PHP session》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

在往PHPSession里面保存信息之前,需要首先使用session_start函数来启动session,这个函数必须在标签之前调用。代码如下:

在Session启动以后,可以使用PHP$_SESSION变量来获取和设置session变量,实例代码如下:

session_start;

//storesessiondata

$_SESSION[views]=1;

?

如果需要删除一些session数据,你可以使用unset函数或者session_destroy函数,unset函数用来把某个session变量的值清空,代码如下:

unset($_SESSION[views]);

?还可以调用session_destroy函数把整个session给销毁,代码如下:

session_destroy;

?

PHP面试题大全


大学生毕业后面临的第一件事情肯定就是面试求职了,那么相应的求职技巧就很重要。感谢阅读《PHP面试题大全》内容,职场资讯网小编向您推荐一些求职技巧知识,希望能够帮到您。

基础题:

1.表单中get与post提交方法的区别?

答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

2.session与cookie的区别?

答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放

cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

两者都可通过时间来设置时间长短

3.数据库中的事务是什么?

答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

简述题:

1、用PHP打印出前一天的时间格式是2006-5-1022:21:21(2分)

答:echodate(Y-m-dH:i:s,strtotime(-1days));

2、echo,print,print_r的区别(3分)

答:echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print只能打印出简单类型变量的值(如int,string)

print_r可以打印出复杂类型变量的值(如数组,对象)

echo输出一个或者多个字符串

3、能够使HTML和PHP分离开使用的模板(1分)

答:Smarty,Dwoo,TinyButStrong,TemplateLite,Savant,phemplate,XTemplate

5、使用哪些工具进行版本控制?(1分)

答:cvs,svn,vss;

6、如何实现字符串翻转?(3分)

答:echostrrev($a);

7、优化MYSQL数据库的方法。(4分,多写多得)

答:

1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOTNULL,例如省份,性别,最好设置为ENUM

2、使用连接(JOIN)来代替子查询:

a.删除没有任何订单客户:DELETEFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)

b.提取所有没有订单客户:SELECTFROMcustomerinfoWHEREcustomeridNOTin(SELECTcustomeridFROMorderinfo)

c.提高b的速度优化:SELECTFROMcustomerinfoLEFTJOINorderidcustomerinfo.customerid=orderinfo.customerid

WHEREorderinfo.customeridISNULL

3、使用联合(UNION)来代替手动创建的临时表

a.创建临时表:SELECTnameFROM`nametest`UNIONSELECTusernameFROM`nametest2`

4、事务处理:

a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败

mysql_query(BEGIN);

mysql_query(INSERTINTOcustomerinfo(name)8iVALUES($name1);

mysql_query(SELECT*FROM`orderinfo`wherecustomerid=.$id);

mysql_query(COMMIT);

5、锁定表,优化事务处理:

a.我们用一个SELECT语句取出初始数据,通过一些计算,用UPDATE语句将新值更新到表中。

包含有WRITE(write)关键字的LOCKTABLE语句可以保证在UNLOCKTABLES命令被执行之前,

不会有其它的访问来对inventory进行插入、更新或者删除的操作

mysql_query(LOCKTABLEcustomerinfoREAD,orderinfoWRITE);

mysql_query(SELECTcustomeridFROM`customerinfo`whereid=.$id);

mysql_query(UPDATE`orderinfo`SETordertitle=$titlewherecustomerid=.$id);

mysql_query(UNLOCKTABLES);

6、使用外键,优化锁定表

a.把customerinfo里的customerid映射到orderinfo里的customerid,

任何一条没有合法的customerid的记录不会写到orderinfo里

CREATETABLEcustomerinfo

(

customeridINTNOTNULL,

PRIMARYKEY(customerid)

)TYPE=INNODB;

CREATETABLEorderinfo

(

orderidINTNOTNULL,

customeridINTNOTNULL,

PRIMARYKEY(customerid,orderid),

FOREIGNKEY(customerid)REFERENCEScustomerinfo

(customerid)ONDELETECASCADE

)TYPE=INNODB;

注意:ONDELETECASCADE,该参数保证当customerinfo表中的一条记录删除的话同时也会删除order

表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;

7、建立索引:

a.格式:

(普通索引)-

创建:CREATEINDEX索引名ONtablename(索引字段)

修改:ALTERTABLEtablenameADDINDEX[索引名](索引字段)

创表指定索引:CREATETABLEtablename([...],INDEX[索引名](索引字段))

(唯一索引)-

创建:CREATEUNIQUE索引名ONtablename(索引字段)

修改:ALTERTABLEtablenameADDUNIQUE[索引名](索引字段)

创表指定索引:CREATETABLEtablename([...],UNIQUE[索引名](索引字段))

(主键)-

它是唯一索引,一般在创建表是建立,格式为:

CREATATABLEtablename([...],PRIMARYKEY[索引字段])

8、优化查询语句