一篇不错的PHP基础学习笔记
程序员文章站
2022-05-26 23:35:28
1、 php片段四种表示形式。 标准tags:
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();
?>
标准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();
?>
上一篇: maya三点光的运用手法
下一篇: CAD图纸怎么快速插入资料软件中?