| 
 
| 1、 PHP片段四种表示形式。 标准tags:<?php ?>
 short tags:<? ?> 需要在php.ini中设置short _open_tag=on,默认是on
 asp tags: <% %>需要在php.ini中设置asp_tags=on,默认是off
 script tags:<script language=”php”></script>
 2、 PHP变量及数据类型
 1) $variable ,变量以字母、_开始,不能有空格
 2) 赋值$variable=value;
 3) 弱类型,直接赋值,不需要显示声明数据类型
 4) 基本数据类型:Integer,Double,String,Boolean,Object(对象或类),Array(数组)
 5) 特殊数据类型:Resourse(对第三方资源(如数据库)的引用),Null(空,未初始化的变量)
 3、 操作符
 1) 赋值操作符:=
 2) 算术操作符:+,-,*,/,%(取模)
 3) 连接操作符:. ,无论操作数是什么,都当成String,结果返回String
 4) Combined Assignment Operators合计赋值操作符:+=,*=,/=,-=,%=,.=
 5) Automatically Incrementing and Decrementing自动增减操作符:
 (1)$variable+=1 <=>$variable++;$variable-=1 <=>$variable-,跟c语言一样,先做其他操作,后++或-
 (2)++$variable,-$variable,先++或-,再做其他操作
 6) 比较操作符:= =(左边等于右边),!=(左边不等于右边),= = =(左边等于右边,且数据类型相同),>=,>,<,<=
 7) 逻辑操作符:|| ó or,&&óand,xor(当左右两边有且只有一个是true,返回true),!
 4、 注释:
 单行注释:// ,#
 多行注释:/* */
 5、 每个语句以;号结尾,与java相同
 6、 定义常量:define(“CONSTANS_NAME”,value)
 7、 打印语句:print,与c语言相同
 8、 流程控制语句
 1) if语句:
 (1)if(expression)
 {
 //code to excute if expression evaluates to true
 }
 (2)if(expression)
 {
 }
 else
 {
 }
 (3)if(expression1)
 {
 }
 elseif(expression2)
 {
 }
 else
 {
 }
 2) swich语句
 switch ( expression )
 {
 case result
 // execute this if expression results in result1
 break;
 case result
 // execute this if expression results in result2
 break;
 default:
 // execute this if no break statement
 // has been encountered hitherto
 }
 3) ?操作符:
 ( expression )?returned_if_expression_is_true:returned_if_expression_is_false;
 4) while语句:
 (1) while ( expression )
 {
 // do something
 }
 (2)do
 {
 // code to be executed
 } while ( expression );
 5) for语句:
 for ( initialization expression; test expression; modification expression ) {
 // code to be executed
 }
 6) break;continue
 9、 编写函数
 1) 定义函数:
 function function_name($argument1,$argument2,……) //形参
 {
 //function code here;
 }
 2) 函数调用
 function_name($argument1,$argument2,……); //形参
 3) 动态函数调用(Dynamic Function Calls):
 <html>
 <head>
 <title>Listing 6.5</title>
 </head>
 <body>
 <?php
 function sayHello() { //定义函数sayHello
 print "hello<br>";
 }
 $function_holder = "sayHello"; //将函数名赋值给变量$function_holder
 $function_holder(); //变量$function_holder成为函数sayHello的引用,调用$function_holder()相当于调用sayHello
 ?>
 </body>
 </html>
 4) 变量作用域:
 全局变量:
 <html>
 <head>
 <title>Listing 6.8</title>
 </head>
 <body>
 <?php
 $life=42;
 function meaningOfLife() {
 global $life;
 /*在此处重新声明$life为全局变量,在函数内部访问全局变量必须这样,如果在函数内改变变量的值,将在所有代码片段改变*/
 print "The meaning of life is $life<br>";
 }
 meaningOfLife();
 ?>
 </body>
 </html>
 5) 使用static
 <html>
 <head>
 <title>Listing 6.10</title>
 </head>
 <body>
 <?php
 function numberedHeading( $txt ) {
 static $num_of_calls = 0;
 $num_of_calls++;
 print "<h1>$num_of_calls. $txt</h1>";
 }
 numberedHeading("Widgets"); //第一次调用时,打印$num_of_calls值为1
 print("We build a fine range of widgets<p>");
 numberedHeading("Doodads"); /*第一次调用时,打印$num_of_calls值为2,因为变量是static型的,static型是常驻内存的*/
 print("Finest in the world<p>");
 ?>
 </body>
 </html>
 6) 传值(value)和传址(reference):
 传值:function function_name($argument)
 <html>
 <head>
 <title>Listing 6.13</title>
 </head>
 <body>
 <?php
 function addFive( $num ) {
 $num += 5;
 }
 $orignum = 10;
 addFive( &$orignum );
 print( $orignum );
 ?>
 </body>
 </html>
 结果:10
 传址:funciton function_name(&$argument)
 <html>
 <head>
 <title>Listing 6.14</title>
 </head>
 <body>
 <?php
 function addFive( &$num ) {
 $num += 5; /*传递过来的是变量$num的引用,因此改变形参$num的值就是真正改变变量$orignum物理内存中保存的值*/
 }
 $orignum = 10;
 addFive( $orignum );
 print( $orignum );
 ?>
 </body>
 </html>
 结果:15
 7) 创建匿名函数:create_function(‘string1','string2'); create_function是PHP内建函数,专门用于创建匿名函数,接受两个string型参数,第一个是参数列表,第二个是函数的主体
 <html>
 <head>
 <title>Listing 6.15</title>
 </head>
 <body>
 <?php
 $my_anon = create_function( '$a, $b', 'return $a+$b;' );
 print $my_anon( 3, 9 );
 // prints 12
 ?>
 </body>
 </html>
 8) 判断函数是否存在:function_exists(function_name),参数为函数名
 10、 用PHP连接MySQL
 1) 连接:&conn=mysql_connect("localhost", "joeuser", "somepass");
 2) 关闭连接:mysql_close($conn);
 3) 数据库与连接建立联系:mysql_select_db(database name, connection index);
 4) 将SQL语句给MySQL执行:$result = mysql_query($sql, $conn); //增删改查都是这句
 5) 检索数据:返回记录数:$number_of_rows = mysql_num_rows($result);
 将记录放入数组:$newArray = mysql_fetch_array($result);
 例子:
 <?php
 // open the connection
 $conn = mysql_connect("localhost", "joeuser", "somepass");
 // pick the database to use
 mysql_select_db("testDB",$conn);
 // create the SQL statement
 $sql = "SELECT * FROM testTable";
 // execute the SQL statement
 $result = mysql_query($sql, $conn) or die(mysql_error());
 //go through each row in the result set and display data
 while ($newArray = mysql_fetch_array($result)) {
 // give a name to the fields
 $id = $newArray['id'];
 $testField = $newArray['testField'];
 //echo the results onscreen
 echo "The ID is $id and the text is $testField <br>";
 }
 ?>
 11、 接受表单元素:$_POST[表单元素名],
 如<input type=text name=user>ó$_POST[user]
 接受url中queryString中值(GET方式):$_GET[queryString]
 12、转向其他页面:header("Location: http://www.samspublishing.com");
 13、字符串操作:
 1)explode(“-”,str)óJava中的splite
 2)str_replace($str1,$str2,$str3) =>$str1要查找的字符串,$str2用来替换的字符串,$str3从这个字符串开始查找替换
 3)substr_replace:
 14、session:
 1)打开session:session_start(); //也可以在php.ini设置session_auto_start=1,不必再每个script都写这句,但是默认为0,则必须要写。
 2)给session赋值:$_SESSION[session_variable_name]=$variable;
 3)访问session:$variable =$_SESSION[session_variable_name];
 4)销毁session:session_destroy();
 15、显示分类的完整例子:
 <?php
 //connect to database
 $conn = mysql_connect("localhost", "joeuser", "somepass")
 or die(mysql_error());
 mysql_select_db("testDB",$conn) or die(mysql_error());
 $display_block = "<h1>My Categories</h1>
 <P>Select a category to see its items.</p>";
 //show categories first
 $get_cats = "select id, cat_title, cat_desc from
 store_categories order by cat_title";
 $get_cats_res = mysql_query($get_cats) or die(mysql_error());
 if (mysql_num_rows($get_cats_res) < 1) { //如果返回记录行数小于1,则说明没有分类
 $display_block = "<P><em>Sorry, no categories to browse.</em></p>";
 } else {
 while ($cats = mysql_fetch_array($get_cats_res)) { //将记录放入变量$cats中
 $cat_id = $cats[id];
 $cat_title = strtoupper(stripslashes($cats[cat_title]));
 $cat_desc = stripslashes($cats[cat_desc]);
 $display_block .= "<p><strong><a
 href="$_SERVER[PHP_SELF][U1] ?cat_id=$cat_id">$cat_title</a></strong>//点击此url,刷新本页,第28行读取cat_id,显示相应分类的条目
 <br>$cat_desc</p>";
 if ($_GET[cat_id] == $cat_id) { //选择一个分类,看下面的条目
 //get items
 $get_items = "select id, item_title, item_price
 from store_items where cat_id = $cat_id
 order by item_title";
 $get_items_res = mysql_query($get_items) or die(mysql_error());
 if (mysql_num_rows($get_items_res) < 1) {
 $display_block = "<P><em>Sorry, no items in
 this category.</em></p>";
 } else {
 $display_block .= "<ul>";
 while ($items = mysql_fetch_array($get_items_res)) {
 $item_id = $items[id];
 $item_title = stripslashes($items[item_title]);
 $item_price = $items[item_price];
 $display_block .= "<li><a
 href="showitem.php?item_id=$item_id">$item_title</a>
 </strong> ($$item_price)";
 [U2] }
 $display_block .= "</ul>";
 }
 }
 }
 }
 ?>
 <HTML>
 <HEAD>
 <TITLE>My Categories</TITLE>
 </HEAD>
 <BODY>
 <? print $display_block; ?>
 </BODY>
 </HTML>
 16、PHP连接Access:
 <?
 $dbc=new com("adodb.connection");
 $dbc->open("driver=microsoft access driver (*.mdb);dbq=c:member.mdb");
 $rs=$dbc->execute("select * from tablename");
 $i=0;
 while (!$rs->eof){
 $i+=1
 $fld0=$rs->fields["UserName"];
 $fld0=$rs->fields["Password"];
 ....
 echo "$fld0->value $fld1->value ....";
 $rs->movenext();
 }
 $rs->close();
 ?>
 
 | 
 上一篇:PHP_MySQL教程-第二天while循环与数据库操作 下一篇:PHP5中的this,self和parent关键字详解教程 |