• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

!!PHP 开发主要资料

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 !!!PHP官网:http://cn2.php.net/sqlite_last_insert_rowid

PHP 手册 http://www.php.net/manual/zh/index.php

[精华] PHP高手之路 http://www.chinaunix.net/old_jh/27/28218.html

    1.通用数据库处理函数

  2.变量调试函数

3.控制Log信息的函数
4.速度测试函数
5.调试和优化数据库的操作--函数增加了运行时间的监测功能。

 

二、编写漂亮的代码
1.将后台程序与前端程序分开
有些代码是用来处理一些事务,例如操作数据库、进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以HTML的格式显示在Web浏览器上的PHP代码以及那些直接嵌入PHP程序的HTML代码。
2.灵活使用包含文件

 

三、追求程序速度,而不是编程的速度
1.使用内嵌的HTML代码,而不是PHP的echo语句
3.注意字符串的引用
如果使用双引号来引用字符串,那么PHP解析器将首先分析字符串中有没有对变量的引用,有变量的话,将对变量进行替换。
显然,在PHP编程中,如果使用单引号引用字符串变量要比使用双引号快速一些
4.在数据库中避免使用联合操作
5.注意include与require的区别
include()是有条件包含函数,而require()则是无条件包含函数。

40个迹象表明你还是PHP菜鸟_PHP_WEB开发网  http://tech.cncms.com/web/php/43386.html

php高手带路--问题汇总解答 http://wenku.baidu.com/view/ab9d93f80242a8956bece4b7.html

《安全PHP编程》http://tech.hexun.com/2009-05-12/117601889.html 

safe_mode = Onloff
safe_mode_include_dir = string
safe_mode_allowed_env_vars = string
safe_mode_exec_dir = string
safe_mode_protected_env_vars = string

 

 

F:\工程硕士\电子书\16 php\!!PHP与MySQL WEB开发圣经中文版
F:\工程硕士\电子书\16 php\!!深入PHP面向对象、模式与实践

 

 

 

 

 php高手带路--问题汇总解答

  2:调试你的程序

 

   在运行时必须知道某个变量为何值。我是这样做的,建立一文件debug.php,其内容如下:

 

   PHP代码:

 

   <?PHP
   Ob_Start();
   Session_Start();
   Echo "<pre>";

 

   Echo "本页得到的_GET变量有:";
   Print_R($_GET);

 

   Echo "本页得到的_POST变量有:";
   Print_R($_POST);

 

   Echo "本页得到的_COOKIE变量有:";
   Print_R($_COOKIE);

 

   Echo "本页得到的_SESSION变量有:";
   Print_R($_SESSION);

 

   Echo "</pre>";
   ?>

 

   然后在php.ini中设置:include_path = "c:/php",并将debug.php放在此文件夹,以后就可以在每个网页里包含此文件,查看得到的变量名和值.

 

   3:如何使用session

 

   凡是与session有关的,之前必须调用函数session_start();

 

   为session付值很简单,如:

 

   在php4.2之后,可以为session直接付值:

 

   PHP代码:

 

   <?PHP
   Session_Start();
   $_SESSION["name"]="value";
   ?>

 

   取消session可以这样:
PHP代码:

 

   <?php
   session_start();
   session_unset();
   session_destroy();
   ?>

 

40个迹象表明你还是PHP菜鸟_PHP_WEB开发网

而命名建议变量:第一个单词小写开头,其它大写开头如:myName,而类名建议都大写开头如:MyName或者My_Name,至于用不用下划线我觉得差别不大(如果很大请指教)。
统一开发方式
?)http://www.phpchina.com/html/42/1142-7314.html
blog (2)几种开发方式讨论 http://topic.csdn.net/u/20080509/09/9b81d740-68fc-4d63-9299-ce6675f240cb.html
?)http://www.ibm.com/developerworks/cn/web/wa-jacquard/index.html#N10064
blog 有关网站UI实现的几种方式的讨论 http://www.cnblogs.com/lovecherry/archive/2010/10/13/1850122.html

--> blog http://topic.csdn.net/u/20080503/02/22a98ba0-70bc-4a80-88cb-950db6300c87.html
read http://forum.csdn.net/PointForum/Forum/UserTopicList.aspx?year=2008&user=tiancaolin

3. 不知道这些概念:KISS、DRY、MVC、OOP、REST
REST(Representational State Transfer)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST提出了一些设计概念和准则:
a. 网络上的所有事物都被抽象为资源(resource);
b. 每个资源对应一个唯一的资源标识(resource identifier);
c. 通过通用的连接器接口(generic connector interface)对资源进行操作;
d. 对资源的各种操作不会改变资源标识;
e. 所有的操作都是无状态(stateless)。(摘自百度百科)
9. 不使用__autoload(译注:参考PHP手册相关描述)

Conquer 19
__autoload函数会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP出错失败前有了最后一个机会加载所需的类。详见:http://cn.php.net/__autoload

20. 不允许智能错误处理(译注:参考PEAR的ErrorStack)
Conquer 20
PEAR_ErrorStack提供了一种基于堆栈的错误处理方法,将各种错误统一起来指向同一个地方以达到把多个无关项目连接到同一个应用程序的目的。(译自:http://pear.php.net/package/PEAR_ErrorStack)

23. 从未听说过SQL注入或跨站脚本
Conquer 23
(1)所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过Web表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击;
(2)业界对跨站攻击的定义如下:“跨站攻击是指入侵者在远程Web页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。”由于HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。如这句简单的Java脚本就能轻易获取用户信息:alert(document.cookie),它会弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍做分析便获取了用户的敏感信息。(摘自百度百科)

!! 31. 不使用数据库抽象层
Conquer 31
请参考 !!http://bbs.phpchina.com/thread-94258-1-1.html

38. 使用数据库表时不使用表前缀
Conquer 38
我想,可能,PHPChina的数据表的前缀是PPC_或者PCC_。这的确是有好处的,我觉得,就好像字段名使用如txtUsername这样的格式。

40. 不关注已有的PHP开发框架,懒于探索;其实先进的开发理念和美妙代码就蕴含其中。
Conquer 40
比如 Zend Framework、CakePHP、FleaPHP、ThinkPHP等。

 

 

 [精华] PHP高手之路

PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。前不久的一份权威调查表明,现在已经有31.6%的网站使用PHP作为主要的服务器端编程语言。  
但是,要成为一名PHP编程高手却并不容易。并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题。以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则。  
1.懒惰是金  
2.编写漂亮的代码  
3.追求程序的速度,而不是编程的速度  
一、懒惰是金  
做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世界上最忙碌的人可能就是计算机程序员了。但正是因为程序员太忙了,所以才应该在编程时学会偷懒。  
对于一个程序员来说,懒惰的方法有两种:其一,大胆使用现成的别人的程序代码,把这些代码融入到你自己的程序或者项目中去。其二是编写一些有用的代码建立一个函数库,在将来编写程序时可以顺手拈来,省去了许多重复的劳动,自然就可以懒惰一点了。  
这两种偷懒的方法都非常适合PHP程序员了。  
首先,PHP是在自由开放的环境中诞生和成长的一门语言。在世界各地,有成千上万的程序员,他们一直在为PHP的完美而不断奋斗,他们也愿意和别人分享自己的聪明才智和自己编写的代码。你每天都可以从一些PHP网站、邮件列表、新闻组发现大量的优秀的程序代码。这样说,我并不是鼓励你整天等着让别人为你编写代码,但是你可以“站在伟人的肩膀上”,充分发扬“拿来主义”,聪明地应用别人的程序代码可以节省你大量时间。其次,在PHP中,你可以方便地建立自己的函数库,这样可以在你以后编写程序时省去很多麻烦。  
下面笔者为大家介绍几个通用的函数,这些函数有的来自网上的一些开放源代码的项目,有的精选自邮件列表。如果你能把它们加入到你自己的函数库中,迟早你将会发现自己受益无穷。  
1.通用数据库处理函数  
和其它的CGI函数相比,PHP的优点之一是具有很强大的数据库处理能力。但是,在PHP中,对于不同的数据库都使用一些特定的函数来专门处理,缺少通用的数据库处理函数。这大大降低了程序代码的可移植性,这也为初学编程的朋友带来了很多不便。  
在网上,许多程序员都通过封装类解决了这个问题。他们编写了统一的函数用来处理任何流行的数据库——不管是在Linux世界深受欢迎的Mysql还是在Windows平台上广泛流行的SqlServer。就笔者个人来说,非常喜欢使用这些函数,因为可以直接使用一些简单的诸如"query"、"next_record"之类的函数,而不需要考虑数据库的连接、数据库句柄这些复杂的东西,更不需要考虑使用的是何种数据库。  
如果你需要这些函数,你可以通过访问以下的几个网址而得到:  
http://phplib.netuse.de/  
http://phpclasses.UpperDesign.com/browse.html/package/20  
http://phpdb.linuxbox.com/  
2.变量调试函数  
PHP程序的调试一直是一件让人头疼的事,它既不像VB等高级语言那样有集成的编译调试环境,也不想Perl那样可以在Linux或者DOS环境下直接运行。其实,我们完全可以通过灵活地使用echo语句来完成对PHP的调试工作。  
下面的几个函数可以让你随时查看程序中任何变量的类型及其值。  
function ss_array_as_string (&$array, $column = 0) {  
$str = "Array(  
n";  
while(list($var, $val) = each($array)){  
for ($i = 0; $i < $column+1; $i++){  
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";  
}  
$str .= $var. ==>; ;  
$str .= ss_as_string($val, $column+1)."  
n";  
}  
for ($i = 0; $i < $column; $i++){  
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";  
}  
return $str.);  
}  
function ss_object_as_string (&$object, $column = 0) {  
if (empty($object->;classname)) {  
return "$object";  
}  
else {  
$str = $object->;classname."(  
n";  
while (list(,$var) = each($object->;persistent_slots)) {  
for ($i = 0; $i < $column; $i++){  
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";  
}  
global $$var;  
$str .= $var. ==>; ;  
$str .= ss_as_string($$var, column+1)."  
n";  
}  
for ($i = 0; $i < $column; $i++){  
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";  
}  
return $str.);  
}  
}  
function ss_as_string (&$thing, $column = 0) {  
if (is_object($thing)) {  
return ss_object_as_string($thing, $column);  
}  
elseif (is_array($thing)) {  
return ss_array_as_string($thing, $column);  
}  
elseif (is_double($thing)) {  
return "Double(".$thing.")";  
}  
elseif (is_long($thing)) {  
return "Long(".$thing.")";  
}  
elseif (is_string($thing)) {  
return "String(".$thing.")";  
}  
else {  
return "Unknown(".$thing.")";  
}  
}  
需要的时候,在程序中简单地加入下面的一条代码即可查看程序中的所使用的变量(包括数组和对象)的类型和值:  
echo ss_as_string($my_variable);  
使用下面的语句,我们可以直接查看程序中所有的变量的值:  
echo ss_as_string($GLOBALS);  
3. 控制Log信息的函数  
调试PHP程序的另外一种重要的方法就是查看Log信息。如果能够方便地控制Log信息的级别以及Log信息的显示内容,将会给程序调试带来更多的便利。下面的几个函数可以方便地实现这个功能。  
$ss_log_level = 0;  
$ss_log_filename = /tmp/ss-log;  
$ss_log_levels = array(  
NONE =>; 0,  
ERROR =>; 1,  
INFO =>; 2,  
DEBUG =>; 3);  
function ss_log_set_level ($level = ERROR) {  
global $ss_log_level;  
$ss_log_level = $level;  
}  
function ss_log ($level, $message) {  
global $ss_log_level, $ss-log-filename;  
if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {  
// 不显示Log信息  
return false;  
}  
$fd = fopen($ss_log_filename, "a+");  
fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");  
fclose($fd);  
return true;  
}  
function ss_log_reset () {  
global $ss_log_filename;  
@unlink($ss_log_filename);  
}  
在上面的函数中,有四个Log级别变量。运行PHP程序时,只有当Log的级别低于预设的级别值时,Log信息才可以被记录和显示出来。例如,在程序中加入如下的一条语句:  
ss_log_set_level(INFO);  
那么,运行PHP程序时,只有ERROR和INFO级别的LOG信息才能被记录和显示出来,DEBUG级的信息则被忽略了。除此之外,我们还可以设定显示的信息内容,其语句如下:  
ss_log(ERROR, "testing level ERROR");  
ss_log(INFO, "testing level INFO");  
ss_log(DEBUG, "testing level DEBUG");  
你也可以随时使用下面的语句清空LOG信息:  
ss_log_reset();  
4.速度测试函数  
为了优化代码,我们需要一种可以测试代码运行时间的方法,从而来选择最优的代码。下面的函数可以测试运行代码所需的时间:  
function ss_timing_start ($name = default) {  
global $ss_timing_start_times;  
$ss_timing_start_times[$name] = explode( , microtime());  
}  
function ss_timing_stop ($name = default) {  
global $ss_timing_stop_times;  
$ss_timing_stop_times[$name] = explode(, microtime());  
}  
function ss_timing_current ($name = default) {  
global $ss_timing_start_times, $ss_timing_stop_times;  
if (!isset($ss_timing_start_times[$name])) {  
return 0;  
}  
if (!isset($ss_timing_stop_times[$name])) {  
$stop_time = explode(, microtime());  
}  
else {  
$stop_time = $ss_timing_stop_times[$name];  
}  
$current = $stop_time[1] - $ss_timing_start_times[$name][1];  
$current += $stop_time[0] - $ss_timing_start_times[$name][0];  
return $current;  
}  
现在可以轻松地检查任何一段代码的执行时间了,甚至我们可以同时使用多个计时器,只需在使用上述的几个函数时设定不同的参数作为计时器的名称就可以了。  
5.调试和优化数据库的操作  
对于数据库来说,运行速度是至关重要的。尽管很多书籍和文章都讲授了一些快速运行数据库的方法,但是所有的方法都必须经过实践的检验。下面我们将把PHPLib函数库中的query()函数和上面介绍的几个函数综合起来编写成新的query()函数,和原先的函数相比,这个函数增加了运行时间的监测功能。  
function query($Query_String, $halt_on_error = 1) {  
$this->;connect();  
ss_timing_start();  
$this->;Query_ID = @mysql_query($Query_String,$this->;Link_ID);  
ss_timing_stop();  
ss_log(INFO, ss_timing_current(). Secs - .$Query_String);  
$this->;Row = 0;  
$this->;Errno = mysql_errno();  
$this->;Error = mysql_error();  
if ($halt_on_error && !$this->;Query_ID) {  
$this->;halt("Invalid SQL: ".$Query_String);  
}  
return $this->;Query_ID;  
}  


二、编写漂亮的代码  
1.将后台程序与前端程序分开  
在编写PHP程序时,有些代码是用来处理一些事务,例如操作数据库、进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以HTML的格式显示在Web浏览器上的PHP代码以及那些直接嵌入PHP程序的HTML代码。首先我们应该清晰地区分这两种代码,把前者称为后台程序,把后者称为前端程序。  
因为PHP是一种嵌入式编程语言,也就是说,所有的PHP代码都可以嵌入到HTML代码之中,这为程序的编写带来了许多便利之处。但是,“物极必反”,如果在一段较长的程序中将PHP代码和HTML代码混合编写,这将使程序杂乱无章,不利于程序的维护和阅读。所以我们需要尽可能地将这些程序中混杂于HTML代码中的PHP代码移植出来,在专门的文件中将这些代码封装成函数,然后在HTML代码中使用include语句来包含这些文件,在适当的位置调用这些函数即可。  
这种做法一方面使HTML代码和PHP代码都简单易读,另一方面因为HTML代码需要不断更新,而这种分离的方法可以确保后台程序不会被破坏。  
同前端程序不同,后台程序更多追求的是稳定、结构化,极少更改,所以应该认真地设计和管理。其实,在设计台程序时,投入大量时间是值得的,“现在栽树,以后乘凉”,在以后的设计工作中将可以轻松地使用现在编写的后台程序。  
2.灵活使用包含文件  
正如前面所说的那样,后台程序应当安排在一系列的包含文件中。包含文件可以通过include语句在需要时动态装入,也可以在php.ini文件中通过使用auto_prepend_file指令预先自动装入。  
如果使用后一种方法的话,虽然取得了一劳永逸的好处,但是也有一些缺点值得我们注意。下面的一段代码向我们展示了解析一个庞大的包含文件需要一定的时间:  
require(timing.inc);  
ss_timing_start();  
include(test.inc);  
ss_timing_stop();  
echo  
.ss_timing_current().  
;  
?>;  
在上面的代码中,test.inc是一个1000行的包含文件,运行的结果显示,解析这个包含文件花费了0.6秒钟,对于一个大型网站来说,这个速度并不是可以忽略不记的。  
使用包含文件的另外一个缺点是:如果一个文件中的一个语句发生错误,将会使整个网站的PHP程序都无法运行。所以使用起来也及其小心。  
其实,对包含文件稍做处理,即可以使包含文件只在需要时进行解析。下面的代码使abc.inc文件只在程序需要时才作解析:  
if ( defined( __LIBA_INC) ) return;  
define( __LIBA_INC, 1 );  
/*  
* 代码...  
*/  
?>;  
3.使用面向对象的编程方法  
PHP也是一种面向对象的语言,面向对象的编程方法是优秀的程序员们非常推崇的一种软件设计方法,在PHP编程中可以充分发挥面向对象语言的优势,对编程中的对象进行封装。在前面的代码中,我们使用了面向对象的方法,例如在管理数据库时,我们将query()函数封装进数据库类中,这极大地方便了代码的管理,增加了程序的可读性。  
三、追求程序速度,而不是编程的速度  
在网站建设中,程序运行速度和网页下载速度都是关系成败的重要因素。作为一名Web程序员,应该更加注意代码的运行速度。下面介绍的几种方法都在不同程度上提高了代码的运行速度。  
1.使用内嵌的HTML代码,而不是PHP的echo语句。  
因为PHP是一门嵌入式Web编程语言,可以将HTML代码和PHP代码相互嵌入。但是很多程序员担心在HTML代码中过多的使用""嵌入PHP代码会多次调用PHP解释器,从而降低了PHP代码的运行速度,所以宁愿使用PHP的echo语句来输出HTML代码,而不直接使用HTML代码。但事实却恰恰相反。每一个PHP页面只调用一次PHP解释器来解释所有的PHP代码,所以,只在需要时才嵌入PHP代码,而大多数的时候直接使用HTML代码输入结果,不但不会降低程序的运行速度,而且因为减少了对echo语句的解析,往往可以提高代码的运行速度。  
下面的一段代码证明了我们的结论。在这段代码中,我们使用了前面介绍的时间测试函数。  

使用str-replace而不是ereg-replace  
习惯使用Perl进行编程的程序员更加愿意使用ereg_replace完成字符串替换工作,因为在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的这段代码证明,使用str_replace 代替 ereg_replace将可以大大提高代码的运行速度。  

测试str_replace和ereg_replace的运行速度  

//这段代码测试str_replace的运行速度  


emphasis; ?>;  

for ($i=0; $i<1000; $i++) {  
str_replace(i>;, b>;, $string).  
;  
}  
?>;  

//这段代码测试ereg_replace的运行速度  

for ($i=0; $i<1000; $i++) {  
ereg_replace(<([/]*)i>;, <\1b>;, $string).  
;  
}  
?>;  

//打印结果  

结论  

使用str_replace的时间 -  

使用ereg_pattern的时间 -  
运行上面的代码,得到的结果是:  
使用str_replace的时间 - 0.089757  
使用ereg_pattern的时间 - 0.248881  
从运行的结果我们可以看出使用str_replace替代ereg_replace作为字符串替换函数,极大地提高了代码的运行速度。  
3.注意字符串的引用  
PHP和其它很多编程语言一样,可以使用双引号("")来引用字符串,也可以使用单引号()。但是在PHP中,如果使用双引号来引用字符串,那么PHP解析器将首先分析字符串中有没有对变量的引用,有变量的话,将对变量进行替换。如果是单引号,则没有如此复杂——直接将单引号包含起来的所有字符串直接显示出来。显然,在PHP编程中,如果使用单引号引用字符串变量要比使用双引号快速一些。  
4.在数据库中避免使用联合操作  
比起其它的Web编程语言来说,PHP的数据库功能十分强大。但是在PHP中数据库的运行仍然是一件十分费时费力的事情,所以,作为一个Web程序员,要尽量减少数据库的查询操作,同时应该为数据库建立适当的索引。另一件值得注意的事情是在用PHP操作数据库时,尽可能不使用多个数据表的联合操作,尽管联合操作可以增强数据库的查询功能,但是却大大增加了服务器的负担。  
为了说明这个问题,我们可以看看下面的这个简单的例子。  
我们在数据库中创建了两个数据表foo和big_foo。在数据表foo中,只有一个字段,包含了从1-1000之间的所有自然数。数据表big_foo同样只有一个字段,但包含了从1-1,000,000之间的全部自然数。所以,从大小上说,big_foo等于foo与它自身进行了联合操作。  
$db->;query("select * from foo");  
0.032273 secs  
$db->;next_record();  
0.00048999999999999 secs  
$db->;query("insert into foo values (NULL)");  
0.019506 secs  
$db->;query("select * from foo as a, foo as b");  
17.280596 secs  
$db->;query("select * from foo as a, foo as b where a.id >; b.id");  
14.645251 secs  
$db->;query("select * from foo as a, foo as b where a.id = b.id");  
0.041269 secs  
$db->;query("select * from big_foo");  
25.393672 secs  
从上面操作结果我们可以发现,对于两个有1000条记录的数据表进行联合,其速度并不比对一个1000000条纪录的大型数据表单独进行操作快多少。  
5.注意include与require的区别  
在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:  
if($something){  
include("somefile");  
}  
但不管$something取何值,下面的代码将把文件somefile包含进文件里:  
if($something){  
require("somefile");  
}  
下面的这个有趣的例子充分说明了这两个函数之间的不同。  
$i = 1;  
while ($i < 3) {  
require("somefile.$i");  
$i++;  
}  
在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():  
$i = 1;  
while ($i < 3) {  
include("somefile.$i");  
$i++;  
}  
6.注意echo和print的区别  
PHP中echo和print的功能也基本相同,但是两者之间也有细微差别。在PHP代码中可以把print作为一个普通函数来使用,例如执行下面的代码后变量$res的值将为1。  
$ret = print "Hello World";  
这意味着print可用在一些复杂的表达式中,而echo则不行。同样,在代码中echo语句的运行速度要略微快于print语句,因为echo语句不要求返回任何数值.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP 通过构造器进行依赖注入 demo发布时间:2022-07-10
下一篇:
PHP CURL POST发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap