常用的操作符
+ 加
- 减
* 乘
/ 除
. 连接字符串
= 变量赋值
声明变量
<?php
// 声明一个整型变量
$num = 0;
// 声明一个浮点型变量
$mount = 0.00;
// 声明一个字符型变量
$str = '';
// 声明一个数组型变量
$array = array();
// 声明一个对象型变量 Dom假设是一个已经定义的类
$obj = new Dom();
// 转换类型
$a = (int)$mount;//转换成int型,对应其它几种类型(string),(float)...
$a = intval($mount);//同上对应其它几种类型floatval,strval...
?>
首先PHP的变量都要以$打头,如$str;
PHP有以下几种
integer 整形
float 浮点型
string 字符型
boolean 布尔 真true,假false
array 数组
object 对象
打开新窗体
<script language=javascript>
window.open("login.php","LogIn","width=200,heigh=300,toolbar=yes,status=no");
</script>
<a href=# οnclick='javascript:window.open("register.htm","Register","width=200,height=300,toolbar=yes,status=no")'>
引用其他页面代码作为本页内容:
<?php
require("check.php");
?>
测试语句执行
if (mysql_query($sql)) echo '数据保存成功';
else echo "数据保存失败,SQL语句:$sql<BR>错误信息:".mysql_error();
连接数据库
$conn=mssql_connect("Act","sa","123");
// 选择数据库
mssql_select_db("phpTest");
$sql="select password from users where name='".$Name."'";
$result=mssql_query($sql,$conn);//当查询串是添删改时,返回的true,false,是select 时,返回新id,返回false是,非成功执行而无结果,而是查询串有误
$UserPWD=mssql_fetch_object($result)//将查询结果拆分到对象变量,若无结果则为false,取回对象的索引必须为文字而非数字,因为则是对象特性如:
$UserPWD->password
mssql_close($conn);//关闭连接
mssql_pconnect()//打开长期连接,该函数会先找是否被执行过,若被执行过返回原先id,该函数无法被mssql_close()关闭
mssql_num_rows()//取得返回列的数目
mssql_list_tables(database,con)//返回指定数据库所有数据表名称
mssql_list_fields(database,table,con)//返回指定数据库数据表所有字段
mssql_list_dbs(con)//返回可用数据库
boolean myssql_free_result(int result)//释放返回所占用空间
mssql_fetch_row(int result) //返回单列个字段
mssql_fetch_array(int result) //返回数组数据
有一点很重要必须指出,用 mysql_fetch_array() 并不明显 比用 mysql_fetch_row() 慢,而且还提供了明显更多的值。
mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。
如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)
mssqlerrno(con)返回错误信息代码
mssqlerror(con)返回错误信息
mssql_drop_db(database,con) //删除数据库
mssql_create_db(databse,con)
mssql_affected_rows(con)//获得最后操作影响的列数,如删除全部数据,会返回0,只有改变数据库的才可以获得,所以select查询无法使用该函数获得函数,需使用mssql_num_rows()
mssql_db_query(database,query,con)
设置cookie
setcookie("phpbookuid",$Name);
当条件不满足时终止本页后面代码执行
if($NewPassword!=$ReNewPassword)
{
echo "两次输入不一致,请<a href=edit.php>重新输入</a>";
exit;
}
获取cookies中的值
$Name=$HTTP_COOKIE_VARS["phpbookuid"];
implode,explode是常用的将数组和字符串之间转换的函数,
implode 将数组以一个字符连接成字符串
explode 使用一个字符串分割另一个字符串
<?php
$array = array('lastname', 'email', 'phone');
$result = implode(",", $array);
echo $result ; // lastname,email,phone
$string = 'jpg|gif|png';
$result = explode('|',$string);
print_r($result); //array('jpg','gif','png') print_r()打印数组
?>
**数组
一个**数组,每个值都是一个数组,保存了教程的信息
<?php
array (
1 =>
array (
'title' => '入门初学',
'level' => 1,
'code_id' => 0,
'no' => 1,
),
2 =>
array (
'title' => 'Hello World第一步',
'level' => 2,
'code_id' => 1,
);
?>
为了代码的利用,PHP提供了require,include来包含代码
require(文件件路径)
include(文件件路径)
require与include的区别在于:
require不受条件限制都会包含文件,如果文件不存在,为至命错误程序终止
include受条件限制,如果include在一个if中,如果if条件不成立文件将不会被包含进来,如果文件不存在,错误为警告,程序继续执行
require_once,include_once,可以让一个文件在一个PHP进程中只被包含一次
// 设定要用的默认时区。自 PHP 5.1 可用
date_default_timezone_set('Asia/Chongqing');//中国地区使用
echo date("Y-m-d H:i:s");//显示当前时间
// 简单实现时间加减
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));//明天
//现在的结果是时间戳,格式化显示,下面相同
echo date("Y-m-d H:i:s",$tomorrow);
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));// 下个月
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);// 明年
// 返回当前的 Unix 时间戳
echo time();
// 返回当前 Unix 时间戳和微秒数 microtime()
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
// Sleep for a while
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;//程序执行时间
获得传参
<?php
// 如打开[查看代码执行结果]页面get.php?id=123
echo $_GET['id'];//这里输出123,试试修改id=后面的数字
?>
HTTP GET 变量:$_GET,通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量。
HTTP POST 变量:$_POST,通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
// 格式化
$str = ' abc ';
// 去除左右空格
echo trim($str);
// 去除左空格
echo ltrim($str);
// 去除右空格
echo rtrim($str);
// 换行/n转换成<br />
echo nl2br($str);
// 轻换成大写
echo strtoupper($str);
// 转换成小写
echo strtolower($str);
$str2 = '"abc"';
// 转义字符
echo addslashes($str2);
// 截取部份长度,下面是从第1位(第2个)截取2位长度,如果是多字节文字可以使用mb_substr代替
echo substr($str,1,2);
//取字符长度
echo strlen($str);
// 取某字符串在目标字符串中的位置不存在返回false
echo strpos($str,'b');
// 替换,下面是将$str中的,都替换成/
echo str_replace(',','/',$str);
数组排序,常用的有这几个函数
sort 对数组排序 按首字母顺序
asort 对数组进行排序并保持索引关系 即按内容排,对应索引保留
ksort 对数组按照键名排序 按索引排
shuffle 将数组打乱
foreach语句
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
foreach ($fruits as $key => $val) //$fruits是数组,$key是遍历的键名,$val是遍历的值
{
echo "$key = $val<br>";
}
<?php
$a = array('a'=>'网上','b'=>'朋友','c'=>'其它',);
// 这是一个hash数组,我们现在把内容输出
foreach ($a as $key => $value) {
echo $key . '->' . $value . '<br>';
}
?>
开始运行foreach第一次,这时 $key='a';$value='网上';
输出后第二次运行 这时 $key='b';$value='朋友';
输出后第三次运行 这时 $key='c';$value='其它';
这时数组已经到了尾部,退出循环
上面代码的结果:
a->网上
b->朋友
c->其它
do-while语句
<?php
$num = 1;
do {
echo $num.'<br>';
$num++;
} while ($num<=5);
?>
注:do while同while类似,不同的是do后的代码先执行再进行判断,所以代码一定会被执行一次
addslashes() 函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:
单引号 (')
双引号 (")
反斜杠 (/)
NULL
magic_quotes_gpc
取得 PHP 环境设定的变数 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。传回 0 表示关闭本功能;传回 1 表示本功能开启。当 magic_quotes_gpc 开启时,所有的 ' (单引号), " (双引号), / (反斜线) and 空字符会自动转为含有反斜线的溢出字符。
全局变量是指可以在程序的任何范围内访问的,比如$_POST, $_GET 等,在函数内部可以访问,在函数外部也可以访问,但普通的函数外定义的变量是不可以在函数内部访问的。比如:
代码:
$GLOBALS['testGlobal'] = '123';
$testVar = 'abc';
function showVar()
{
echo $GLOBALS['testGlobal']; //此行可以显示123,因为这是个全局变量
echo $testVar; //此行并不能显示abc,因为函数内部无法访问$testVar这个普通变量。
}
showVar(); //显示 123
全局变量并不是指变量可以跨文件访问,跨文件访问PHP是做不到的,要访问另一个文件中定义的变量只能先包含那个文件。
php 学习笔记
最新推荐文章于 2024-10-08 13:11:11 发布