PHP基础知识学习笔记1.
PHP
Hypertext Preprocessor
超文本预处理程序
PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.
内嵌语言 PHP 它的语法借鉴了 C, Java 和 Perl,同时也自创了一些 PHP 特有的功能。
Linux + Apache + PHP 和 Windows + IIS + ASP or ASP.net 是当前 Web 动态网页的两大阵营
PHP 通常搭配 Apache HTTP Server 一起使用,但它也可以和 Windows IIS 一起使用。
2.
输出 echo
变量 $txt
字符串 'i\'m a girl'
\' 来表示单引号'
在其它情况下,反斜杠不起转义作用,比如 \n,还是会显示 \n。
双引号指定字符串
用双引号指定字符串比用单引号允许更多转义。如果你需要更多转义,推荐用双引号来指定字符串。
转义符号 说明
\n 换行(LF 或 ASCII 字符 0x0A(10))
\r 回车(CR 或 ASCII 字符 0x0D(13))
\t 水平制表符(HT 或 ASCII 字符 0x09(9))
\\ 反斜线
\$ 美元符号
\" 双引号
\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符
一个是连接运算符.,用来连接两个字符串;一个是连接赋值运算符.=
echo "Hello "."World"
$a ="good";$a .=" for you";
3.
PHP注释
单行注释语法 //
多行注释语法
/*
这是多行注释
这是多行注释
*/
4.类型
PHP 语言有8种基本类型。这8种基本类型又分成三类:标量类型,复合类型和特殊类型。
标量类型 (scalar types)
布尔 (boolean)
整数 (integer)
浮点数 (即小数,float 或者 double)
字符串 (string)
复合类型 (compound types)
数组 (array)
对象 (object)
特殊类型 (special types)
资源 (resource)
NULL (NULL)
$a =1; //整数类型$b =8.26; //浮点数类型
数组:
echo $a[0];
$a = array("orange", "apple","peach");
$a = array(0=>"orange", 1=>"apple",2=>"peach");
上面两句代码效果是一样的,第一句没有指定数组的 key,系统就自动给数组的每个值加 key,key 的值从0开始每次加1。第二句代码,是在定义数组的时候,给数组的每个值加赋予对应的 key。
数组的 key 还可以用字符串表示
$a = array("os"=>"Windows XP", "lang"=>"Chinese","sp"=>"Service Pack 3");
修改数组
增加一个数组元素的语法:
$array_name[key] = value
删除一个数组元素,使用 unset 函数,语法如下:
unset($array_name[key])
遍历:
<?php
$a = array(a=>100, b=>200,d=>500);
$a["c"] = 300; unset($a["b"]);
foreach ($a as $key=> $value)
{ echo $key.": ".$value."<br />";
}
?>
算术运算符 (Arithmetic Operators)
运算符 说明 示例 结果
+ 加 2+2
$a + $b
4
变量$a 和 $b 的和
- 减 3-2
$a - $b
1
变量$a 和 $b 的差
* 乘 3*2
$a * $b
6
变量$a 和 $b 的乘积
/ 除 3/2
$a / $b
1.5
变量$a 除以 $b 的结果
% 余数 3/2
$a % $b
1
变量$a 除以 $b 的余数
赋值运算符 (Assignment Operators) =
比较运算符 (Comparison Operators)
运算符 说明 示例
== 等于 6==6 返回 TRUE
!= 不等于 7!=8 返回 TRUE
< 小于 8<7 返回 FALSE
> 大于 8>7 返回 TRUE
<= 小于等于 8<=9 返回 TRUE
>= 大于等于 8>=9 返回 FALSE
逻辑运算符 (Logical Operators)
运算符 说明 示例
&& and 与 $a && $b
如果 $a 和 $b 都为 TRUE,返回TRUE
|| or 或 $a || $b
如果 $a,$b 中任何一个为 TRUE,返回 TRUE
! not 非 !$a
如果 $a 不是TRUE,返回 TRUE
xor xor 或异 $a xor $b
如果 $a,$b 中任何一个为 TRUE,但不同时为 TRUE,返回 TRUE
++ 递增 $a++,返回$a,然后将$a的值加1
++$a,$a的值加1,然后返回$a
-- 递减 $a--,返回$a,然后将$a的值减1
--$a,$a的值减1,然后返回$a
字符串运算符 (String Operators)
字符运算符有2个。一个是连接运算符.,用来连接两个字符串;一个是连接赋值运算符.=,它将右边参数附加到左边的参数后。示例如下:
运算符 示例 结果
. "Hello"."World" HelloWorld
.= $a="Hello";
$a.="World";
$a.="World" 相当于$a = $a."World"
$a 的值为 HelloWorld
赋值运算符和算术运算符的结合使用
运算符组合 示例 说明
+= $a += 3 $a = $a + 3
-= $a -= 3 $a = $a - 3
*= $a *= 3 $a = $a * 3
/= $a /= 3 $a = $a / 3
%= $a %= 3 $a = $a % 3
条件语句语法:
<?php if ($a > $b) echo "a is bigger than b"; ?>
if (expr)
statement
elseif (expr)
statement
else
statement
switch (expression){case value: statement break; case value: statement break;[default: statement^]}
$a=1;while($a<=5) { echo "The number is " . $a . "<br />"; $a++; }?>
<?php $i=0;do { $i++; echo "The number is " . $i . "<br />"; }while ($i<5);?>
<?php for ($i=1; $i<=5; $i++){ echo $i ;}?>
<?php $a = array("orange", "apple","peach");foreach ($a as $value){ echo $value."<br />";}?>
PHP函数
function getsum($a,$b)
{
$sum = $a + $b; return $sum; }
没有参数,没有返回值的函数示例
function sayhello() { echo "hello";}
全局变量 (global variables)和局部变量 (local variables)
我们将函数内部的变量称为局部变量 (local variables)。通常它只作用于该函数内部,只能在函数内部被访问到,它不影响函数外的代码。
在函数外部的变量,我们称为全局变量 (global variables)。通常它作用在函数外部。它不影响函数内部。
<html><body><?php $a = "Boston Legal";function getA(){ $a ="House"; return $a;}echo $a."<br />";echo getA();?></body></html>
返回的结果是:
Boston LegalHouse
在函数内部访问全局变量
如果你想在函数内部也能访问到某个全局变量,可以使用$GLOBALS,$GLOBALS 是个 PHP 超全局变量。示例如下:
<html><body><?php $a = "Boston Legal";function getA(){ $a ="House"."<br />".$GLOBALS['a']; return $a;}echo getA();?></body></html>
PHP内部函数
PHP 本身提供了很多内部函数 (Internal functions),也称为内置函数 (built-in functions),这一章节,我们主要介绍一些常用的 PHP 内置函数。
echo 和 print
详见 PHP echo 和 PHP echo 和 print的区别。
strlen
strlen 函数能得到一个字符串的长度。下面的示例中,得到的变量 $a 的长度为 8。
$a = ' abcdef ';echo strlen($a); //8
trim
trim 函数的功能是将字符串的两边的空格都去掉。比如下面示例中变量 $a 的值是 ' abcdef ',字符串两边各有一个空格, trim 之后,由于去掉字符串两边的两个空格,字符串的长度就是6。
$a = ' abcdef ';
echo strlen(trim($a)); //6
ltrim
ltrim 函数的功能是将字符串左边的空格去掉。
echo 'nice',' try'; //nice try
echo 'nice',ltrim(' try'); //nicetry
rtrim
rtrim 函数的功能是将字符串右边的空格去掉。
echo 'a ', 'b'; //a becho rtrim('a '),'b'; //ab
substr
通过 substr 函数可以得到字符串的一部分。substr 函数语法如下:
substr(string,start,length)
意思是从字符串 string 的 start 位置开始,截取长度为 length 的字符串。字符串 string 的第一个字符的位置是0,而不是1。示例如下:
echo substr('blablar.com',0,3); //bla
上面示例表示,从字符串第一个字符开始,截取3个字符,返回结果是 bla。
echo substr('blablar.com',3,5); //blar.
上面示例的意思是从字符串 blablar.com 的第四个字符开始,截取5 个字符,得到结果是 blar.。
你也可以不写参数 length,表示从 start 位置开始截取后面所有的的字符串,比如:
echo substr('blablar.com', 3); //blar.com
strtolower
strtolower 的功能是将字符串全部变成小写。示例如下:
echo strtolower('BlaBlar.COM');//blablar.com
strtoupper
strtoupper 和 strtolower 相反,功能是将字符串都变成大写。示例如下:
echo strtoupper('china'); //CHINA
str_replace
str_replace 的作用是替换字符串。str_replace 函数的语法如下:
str_replace(search,replace,subject)
意思是在 subject 字符串中,找到任何符合 search 的字符串,然后用 replace 代替所有 search 字符串。
示例如下:
echo str_replace("bla","CHA","blablar"); //CHACHAr
上面的例子中,用 CHA 替代 blablar 字符串中所有的 bla ,返回的结果是CHACHAr。
echo 和 print 的作用都是输出字符串。echo 和 print 之间主要的区别在于:
速度
返回值
表达式
参数
速度
echo 的速度比 print 快,因为 echo 没有返回值。
返回值
echo 没有返回值;print 有返回值,print 的返回值总是1。
表达式
print 可以用于复杂的表达式,而 echo 不可以。比如 print 可以用于如下示例:
<html><body><?php$a=true;$a ? print "true":print "false";?></body></html>
参数
echo 可以有多个参数,而 print 只能有一个参数。
echo 如果有多个参数,应用逗号分隔,每个参数没有必要加小括号,正确写法如下:
echo "good ","for ","you";
注意,如果 echo 有多个参数,只用一个小括号将所有参数围起来,是错误的写法。下面的写法是错误的:
echo ("good ","for ","you");
print 只能有一个参数,比如:
print ("good for you");
print "good for you";
数学计算内部函数:
一般的计算,我们可以通过运算符解决,比如加减乘除等。使用 PHP 的数学计算内部函数,可以帮助我们解决一些比较复杂的计算。下面主要讲述 round, floor, ceil, pow, rand,max, min, decbin, bindec, dechex, hexdec, decoct, octdec 函数。
round
round - 对浮点数进行四舍五入。round 函数语法如下:
round(float,precision)
其中参数 precision 表示小数点后面要保持的精度位数。如果不写参数 precision,表示四舍五入到整数位,比如:
echo round(3.4); // 3echo round(3.5); // 4echo round(3.6); // 4
如果 precision 为2,表示四舍五入到小数点后2位。示例如下:
echo round(1.95583, 2); // 1.96
如果参数 precision 为负数,表示四舍五入到小数点前。比如:
echo round(1241757, -3); // 1242000
floor
floor - 舍去法求整。floor 函数语法如下:
floor (value)
floor 函数返回不大于 value 的最大整数,即将 value 的小数部分舍去取整。示例如下:
echo floor(4); //4
echo floor(4.3); // 4echo floor(9.999); // 9
ceil
ceil - 进一法取整。ceil 函数语法如下:
ceil (value)
ceil 函数返回不小于 value 的最小整数。示例如下:
echo ceil(4); //4
echo ceil(4.3); // 5echo ceil(9.999); // 10
pow
pow - 求幂。pow 函数的语法如下:
pow (base,exp)
pow 函数返回 base 的 exp 次方的幂。下面的示例表示求 2 的8 次方,返回结果是256。
echo pow(2, 8); // 256
rand
rand - 产生一个随机整数。rand 函数语法如下:
rand (min,max)
rand 函数返回一个介于最小值 min 和最大值 max 之间 (包括min, max) 的随机整数。比如下面示例返回一个 2 到 6 之间的随机整数。
echo rand(2,6);
max
max - 返回参数中数值最大的值。
如果 max 函数只有一个参数且为数组,max 返回该数组中最大的值。
max 函数示例如下:
echo max(1, 3, 5, 6, 7); // 7echo max(array(2, 4, 5)); // 5
min
min - 返回参数中的最小值。
如果 min 函数只有一个参数且为数组,min 返回该数组中最小的值。
min 函数示例如下:
echo min(1, 3, 5, 6, 7); // 1echo min(array(2, 4, 5)); // 2
decbin
decbin - 十进制转换为二进制。decbin 函数语法如下:
decbin (number)
decbin 返回一个字符串,即返回参数 number 的二进制表示。示例如下:
echo decbin(12);
decbin(12) 返回的结果是:
1100
bindec
bindec - 二进制转换成十进制。bindec 函数语法如下:
bindec (binary_string)
bindec 函数将二进制字符串 binary_string 转换成一个十进制整数。示例如下:
echo bindec('110011'); //51
dechex, hexdec
dechex - 十进制转换为十六进制。
hexdec - 十六进制转换为十进制。
dechex, hexdec 函数示例如下:
echo dechex(47); //2f
echo hexdec('2f'); //47
decoct, octdec
decoct - 十进制转换为八进制
octdec - 八进制转换为十进制
decoct,octdec 函数示例如下:
echo decoct(12); //14
echo octdec('14'); //12
本章讲述几个常用的 PHP 数组内部函数。
在前面我们已经介绍过PHP 数组,创建一个数组用 array() 函数,删除一个数组元素用 unset() 函数。本章节我们还要学习一些其它常用的有关数组的内部函数。
count,sizeof
count - 返回一个数组的元素个数。sizeof 是 count 的别名,功能和 count 一样,也是返回一个数组的元素个数。
count 函数示例如下,下面的示例中,输出数组个元素个数,为6。
<?php$a = array(1,2,4,5,3,9);echo count($a); //6?>
sort
sort - 给一个数组的元素排序。排序后,数组各元素原来的 key 也因为排序而改变。sort 函数示例如下:
<html><body><?php$a = array(1,2,4,5,3,9);echo "before sorting: <br />";foreach ($a as $key=>$value){ echo "a[$key]: $value <br />";}sort($a);echo "after sorting: <br />";foreach ($a as $key=>$value){ echo "a[$key]: $value <br />";}?></body></html>
返回的显示结果是:
before sorting:a[0]: 1a[1]: 2a[2]: 4a[3]: 5a[4]: 3a[5]: 9after sorting:a[0]: 1a[1]: 2a[2]: 3a[3]: 4a[4]: 5a[5]: 9
asort
asort - 给数组的元素排序,保留每个元素原来的key。
我们将上面的示例中的 sort($a) 改成 asort($a),得到的结果是:
before sorting:a[0]: 1a[1]: 2a[2]: 4a[3]: 5a[4]: 3a[5]: 9after sorting:a[0]: 1a[1]: 2a[4]: 3a[2]: 4a[3]: 5a[5]: 9
ksort
ksort - 根据 key 的大小给数组每个元素排序。ksort 函数示例如下:
<html><body><?php$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");ksort($fruits);foreach ($fruits as $key => $val) { echo "$key : $val <br />";}?> </body></html>
返回的结果如下:
a : orangeb : bananac : appled : lemon
出处:
http://www.blabla.cn/php/php_array_functions.html