[转]php5入门学习心得

PHP5的13条认识(转)
1、嵌入方法:
    类似JSP的<%,PHP可以是<?php或者是<?,结束符号是?>。
 
2、引用文件:
     引用文件的方法有两种:require 及 include。(最好用require_once和include_once;效率会略高)
     require 的使用方法如 require("test.php"); 。这个函数通常放在 PHP 程序的最前面,
     PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。
     常用的函数,亦可以这个方法将它引入网页中。
     include 使用方法如 include("test.php"); 。这个函数一般是放在流程控制的处理部分中。
     PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
 
3、注释方法:
   和java一样; 3种(1:/**abc */   2:/*abc */   3://abc)
 
4、变量类型:
  define('USERNAME_MAX_LENGTH', 60);//常量定义
 $str = "test" ;
 $int1 = 66;
 $float1 = 1.653 ;
 $float2 = 1.3E+5 ;
 $array1 = array(   'no1' =>  "甲" ,   'no2' =>  "乙" ,   'no3' =>  "丙");
$no = $array1['no2'];
// 判断是否声明了变量$haohappy2
isset($haohappy2);
// 判断变量$haohappy2是否为空
empty($haohappy2);
// 删除引用: 自动释放内存空间
unset($haohappy2);
// md5的加密函数md5():
md5($password);
这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾。
 
5. php输出方法:
   以下有3种方法输出:
 echo 一定不能带有圆括号
 printf 却一定要有圆括号;用来格式化数字的输出。可以把一个数作为整数,或者用科学计数法显示出来。
 print 可有可无圆括号
   你可以用“,”号来分隔多个要显示得内容;包括变量.字符.数字.函数等类型.
   可以用iconv('gb2312', 'utf-8', $response)来把gb2312的字符转成utf-8的字符输出.
   php退出函数用"exit";java用"return".
 
6.了解php的系统信息方法:
 以下可以看到php的系统变量:
 <?php
     echo "<pre>";
            print_r($GLOBALS);
 ?>
 举例:可以查到远程访问的ip
      <?php echo $_SERVER["REMOTE_ADDR"];?>
 以下可以看到php的系统环境:
     <?php echo phpinfo(); ?>
 
7.数据库编程:
     <?php
 //数据库连接 3个参数 ip, 用户, 密码
 $conn=mysql_connect("127.0.0.1", "test", "test");
 //选择名为"mysee"数据库
 mysql_select_db("mysee");
 //执行sql语句;得到输出结果$result
 $result = mysql_query("select channel_name, channel_url from live_channel where isactive=1");
 $response="{";
 $i=0;
 //循环得到$result的单记录行值$row
 while($row = mysql_fetch_array($result)) {
        //注意:php字符相加用'.'和java不一样(java用'+'); $row["channel_name"]可以行记录的字段名'channel_name'的值
  $response .= "'".$i."':['".$row["channel_name"]."', '".$row["channel_url"]."'],";
  $i++;
 }
 /*关闭数据库连接(不写当这个php文件执行完后会自动关闭的;手工关闭会节省数据库连接时间)
    这一点和java不一样;java一定要语句关闭*/
 mysql_close($conn);
 /*截取字符串函数substr(字符,起始位子,截取长度):
    有一点需要说明的:第三个参数是负数;代表从后倒数截取的字符长度;正数:代表从头截取的字符长度;
    赫赫...php是不是很聪明哟*/
 $response=substr($response,0,-1)."}";
 //把$response从gb2312的字符转成utf-8的字符输出
 echo iconv('gb2312', 'utf-8', $response);
      ?>
 
8.得到页面form提交的参数值:
   例如:http://127.0.0.1/test.php?parm1=zjh1&parm2=zjh2
   方法一:
   <?php
 //可以得到doget所有参数;
 extract($_GET);
 //可以得到dopost所有参数
 extract($_POST);
 echo $parm1."---".$parm2
    ?>
    得到结果: zjh1--zjh2
 
   方法二:
   <?php
       //可以得到dopost参数
 echo $_GET["parm1"]."---".$_GET["parm2"]
       //或者得到dopost参数
 //echo $_POST["parm1"]."---".$_POST["parm2"]
    ?>
得到结果: zjh1--zjh2
 
9.发送邮件:
        php发邮件很简单,可以使用mail()函数;不过mail()需要服务器(有邮件服务)的支持;
     这一点和java不同(java需要j2ee的2个包:active.jar和mail.jar;但不需要邮件服务的支持;编程略微复杂些);
     以下实例说明:
 <?php
  extract($_GET);
  extract($_POST); 
 //返回值 0:内容为空;1:发送邮件成功;2:发送邮件失败;
  if (empty($content)) {echo 0; return;}
 //mail("收件人地址","主题","正文","From:发件人 Reply-to:发件人的地址");
  $deal=mail($e_mail,
              "[主题]",
       //stripslashes()函数可以原样输出内容;不用加安全处理字符
       stripslashes($content),
      //默认是文本格式发送;加了"Content-Type:Text/Html"后就可以解析html了
      "From:mysee.monitor@gaov-inc.com\nContent-Type:Text/Html\n");
  if ($deal) {echo 1;}else{echo 2;}
 ?>
 
10.session简单的处理:
  session_start();//创建一个session
  $_SESSION['login']=true;//设session的值
    unset($_SESSION['login'])//删除session的‘login’设置
 
11.用php5的函数读取xml文件内容:
php5之前读取xml内容非常麻烦;
但php5有2个函数则非常方便
simplexml_load_file()和simplexml_load_string();
simplexml_load_file()可以读取外部文件和www的url返回值;
simplexml_load_string()可以读取字符串。

一个调用 youtube.xml文件的简单小例子:
a:youtube.xml文件内容如下:
    <? xml version="1.0" encoding="utf-8"   ?>
-   < ut_response   status =" ok " >
-   < video_details >
    < author > wanglihong </ author >
    < title > 中国語会話 第九課-part3 </ title >
    < rating_avg > 0.00 </ rating_avg >
    < rating_count > 0 </ rating_count >
    < tags > 中国語会話 第九課 -part3 </ tags >
    < description > 中国語会話 第九課-part3 </ description >
    < update_time > 1179800386 </ update_time >
    < view_count > 428 </ view_count >
    < comment_count > 0 </ comment_count >
    < upload_time > 1172687360 </ upload_time >
    < length_seconds > 248 </ length_seconds >
    < recording_date   />
    < recording_location   />
    < recording_country   />
    < comment_list   />
-   < channel_list >
    < channel > Howto & DIY </ channel >
    </ channel_list >   < thumbnail_url > http://img.youtube.com/vi/LhHGY_Rvz7k/2.jpg </ thumbnail_url >
    < embed_status > ok </ embed_status >
    </ video_details >
    </ ut_response >
 
b:调用的php代码:
 <?php
 $xml = simplexml_load_file('youtube.xml');
 if ($xml[status] == 'ok') {
      echo   $xml->video_details->title;
 }
?> 
呵呵;多简单呀!
 
12.php5对象处理(推荐《classes and objects in php5》书):
<?php
class foo
{
   function do_foo
(){
       echo "Doing foo."
;
   }
}
$bar = new foo
;
$bar->do_foo
();
?>
php5借鉴了java2的对象模型,提供了较为强大的面向对象编程支持,使用php来实现oo将变得轻松和自然。
 
a.对象传递:
php5使用了zend引擎ii,对象被储存于独立的结构object store中,而不像其它一般变量那样储存于zval中(在php4中对象和一般变量一样存储于zval)。在zval中仅存储对象的指针而不是内容 (value)。当我们复制一个对象或者将一个对象当作参数传递给一个函数时,我们不需要复制数据。仅仅保持相同的对象指针并由另一个zval通知现在这个特定的对象指向的object store。由于对象本身位于object store,我们对它所作的任何改变将影响到所有持有该对象指针的zval结构----表现在程序中就是目标对象的任何改变都会影响到源对象。.这使 php对象看起来就像总是通过引用(reference)来传递,因此php中对象默认为通过“引用”传递,你不再需要像在php4中那样使用& 来声明。
 
b.垃圾回收机制:
某些语言,最典型的如c,需要你显式地要求分配内存当你创建数据结构。一旦你分配到内存,就可以在变量中存储信息。同时你也需要在结束使用变量时释放内存,这使机器可以空出内存给其它变量,避免耗光内存。
php可以自动进行内存管理,清除不再需要的对象。php使用了引用计数(reference counting)这种单纯的垃圾回收(garbage collection)机制。每个对象都内含一个引用计数器,每个reference连接到对象,计数器加1。当reference离开生存空间或被设为 null,计数器减1。当某个对象的引用计数器为零时,php知道你将不再需要使用这个对象,释放其所占的内存空间。
例如:
<?php
class person{
}
function sendemailto(){
}
$haohappy = new person( );
// 建立一个新对象: 引用计数 reference count = 1
$haohappy2 = $haohappy;
// 通过引用复制: reference count = 2
unset($haohappy);
// 删除一个引用: reference count = 1
sendemailto($haohappy2);
// 通过引用传递对象:
// 在函数执行期间:
// reference count = 2
// 执行结束后:
// reference count = 1
unset($haohappy2);
// 删除引用: reference count = 0 自动释放内存空间
?>
 
c.下面我们来看看php5中的对象模型和php4具体的不同之处(新增和改进功能):
1) private and protected members 私有和保护类成员(属性,方法)
2) abstract classes and methods 抽象类和抽象方法
3) interfaces 接口
4) class type hints 类型指示
5) final  final关键字
6) objects cloning  对象复制
7) constructors and destructors 构造函数和析构函数
8) class constants 类常量
9) exceptions 异常处理
10) static member 静态类成员
11) __method__ constant __method__常量
12) reflection 反射机制




转载于:https://www.cnblogs.com/lost2x/archive/2012/02/10/2345115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值