XML风格
echo "XML风格的标记";
?>
推荐使用此种标记,服务器不能禁用,在XML和XHTML中都可以使用
脚本风格
<script language="php">
echo "脚本风格的标记";
</script>
简短风格
echo "简短风格标记"; ?>
ASP风格
<%
echo "ASP风格标记";
%>
简短风格和ASP风格标记的使用,需要对php.ini进行配置,将里面的short_open_tag和asp_tags都设置为on,然后重启Apache服务器即可
###1.2 PHP的注释
/*You are
so
cute */
echo "666"; //输出666
echo "520"; #输出520
?>
多行注释: /* */(类似于C++)
单行注释: //或#
注意:单行注释里不要出现“ ?> ”的标志,这样会让解释器认成php脚本结束的标志
标量数据类型是数据结构中最基本的数据单元,只能存储一个数据
类型 | 描述 |
---|---|
布尔型 | 只有true和false两个值 |
字符串型 | 单个或连续的字符集合 |
整型 | 整数类型,正数或负数都可 |
浮点型 | 存储有小数位的数字 |
数组(array)
//三种创建方式
//第一种:
$array_name = array('value1', 'value2'......);
//第二种:
$array_name[key] = 'value';
//第三种:
$array_name = array(key1 => value1, key2 => value2......);
?>
对象(object)
对象是类的实例
自动转换
强制转换
转换符 | 功能 | 举例 |
---|---|---|
(boolean)或(bool) | 转布尔型 | $num = (bool)$num、$num = (boolean)$num |
(string) | 转字符串型 | $num = (string)$num |
(int)或(integer) | 转整型 | $num = (int)$num、$num = (integer)$num |
(float)、(double)、(real) | 转浮点型 | $num = (float)$num |
(array) | 转数组 | $num = (array)$num |
**bool settype(var, type)**可以帮助完成类型转换,如:
$num = '3.14phporg'; settype($num, 'int'); echo $num;
此段代码输出结果为3
此外,"echo settype($num, ‘int’);"的输出结果为1,因为settype函数的返回值是个bool类型,如果转换成功,结果就为true,输出值就为1
还有一些函数:
函数 功能 intval(var) 转整型 floatval(var)、doubleval(var) 转浮点型 boolval(var) 转布尔型
函数 | 功能 |
---|---|
is_bool(var) | 检测变量是否为布尔型 |
is_string(var) | 检测变量是否为字符串 |
is_float(var)、is_double(var) | 检测变量是否为浮点型 |
is_integer(var)或is_int(var) | 检测变量是否为整型 |
is_null(var) | 检测变量是否为空(NULL) |
is_array(var) | 检测变量是否为数组类型 |
is_numeric(var) | 检测变量是否为数字或由数字组成的字符串 |
常量值被定义后,在脚本的其他任何地方都不能改变。PHP中使用==define()==函数来定义常量,该函数语法如下:
define(string constant_name, mixed value, case_sensitive = false)
参数 描述 constant_name 必选参数,常量的名称,即标识符 value 必选参数,常量的值 case_sensitive 可选参数,指定是否大小写敏感,设定为true则表示不敏感
其他关于常量的函数:
函数 | 功能 |
---|---|
constant(constant_name) | constant_name为常量名,如何该常量存在则获取常量值,否则报错 |
defined(constant_name) | 判断常量是否被定义,若被定义则返回true |
例子:
define('AGE', '年龄18'); echo AGE.'
'; //输出常量AGE的值 echo Age.'
'; //默认大小写敏感,不存在常量Age,输出字符串'Age' define('NAME', '小明', true);//true表示大小写不敏感 echo NAME.'
'; echo name.'
'; //两者输出结果相同 echo constant('AGE').'
'; $age = 'AGE'; echo constant($age).'
'; echo constant('aGe').'
'; //常量不存在,报错 echo defined($age); ?>运行结果:
年龄18
Age
小明
小明
年龄18
年龄18
Warning: constant(): Couldn’t find constant aGe in …
1
PHP里有很多已经定义、常量,我们可以利用这些常量来获取PHP中的信息
常量名 | 功能 |
---|---|
__FILE__ | PHP程序文件名 |
__LINE__ | PHP程序行数 |
PHP_VERSION | PHP程序的版本 |
PHP_OS | 执行PHP解析器的操作系统 |
TRUE | 该常量是一个真值(true) |
FALSE | 该常量是一个假值(false) |
NULL | 一个空值(null) |
E_ERROR | 该常量指到最近的错误处 |
E_WARNING | 该常量指到最近的警告处 |
E_PARSE | 该常量指到解析语法有潜在问题处 |
E_NOTICE | 该常量为发生不寻常处的提示 |
变量名由数字、字母或下划线组成,但不能以数字开头。除此之外的其他字符也不能够出现在变量名中。变量是由"$"符加变量名组成。
$age_666 = 'my age is 18!'; //合法变量名
$123_flag = 'valid name'; //以数字开头,非法变量名
$age@^ = 'vaild string'; //含有非法字符@、^,非法变量名
?>
变量赋值:
$string1 = 'value1'; //变量声明时直接赋值
$string2 = $string1; //变量间传值
$string3 = &$string1; //引用传值
?>
引用赋值使得多个变量访问同一内存,其中一个变量值改变时,其它值也改变
作用域 | 描述 |
---|---|
局部变量 | 函数内部定义的变量,只在该函数内部有效 |
全局变量 | 被定义在所有函数以外的变量,作用于整个PHP文件,但在用户自定义函数内部是不可用的。可以使用global关键字使得该变量可以在自定义函数内使用 |
静态变量 | 能在函数调用结束后仍然保留变量值,使用static关键字来声明 |
看一段例子:
$a = 'b';
$b = '我喜欢PHP';
echo $a.'
';
echo $$a;
?>
第一输出的是$a的值’b’,这没有问题。第二个输出的是’$$a’的值,首先,$a的值为’b’,$$a将$a用b替换,就变成了$b,所以$$a输出的是$b的值。
PHP提供了很多非常实用的预定义变量, 通过这些预定义变量可以获取用户会话、 用户操作系统 的环境和本地操作系统的环境等信息。下表列举出了几个。
变量名 | 描述 |
---|---|
$_COOKE | 通过HTTPCook.ie传递到脚本的信息,这些cookie多数是由执行PHP脚本时 通过setcookie()函数设置的 |
$_ SESSION | 包含与所有会话变量有关的信息。$_SESSION变量主要应用于会话控制和页 面之间值的传递 |
$_POST | 包含通过POST方法传递的参数的相关信息。牛要用千获取通过POST方认提交的数据 |
$_GET | 包含通过GET方法传递的 参数的 相关信息。主荌用于获取通过GET方法提交 的数据 |
算术运算符
符号 | 描述 |
---|---|
+ | 加法运算符,$a+$b |
- | 减法运算符,$a-$b |
* | 乘法运算符,$a*$b |
/ | 除法运算符,整除,$a/$b |
% | 取余运算符,$a%$b |
字符串运算
'.'可以连接两个字符串
$n = '3.14abc'; $m = 2; echo $n.$m.'
'; echo $m.$n.'
'; echo ($m+$n).'
'; echo ($n+$m).'
'; ?>输出结果:
3.14abc2
23.14abc
5.14
5.14
赋值运算符
如:$a += $b的意思是$a = $a + $b。此外,还有类似的-=、*=、/=、.=、%=
位运算符
符号 | 作用 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 按位取反 |
<< | 向左移位 |
>> | 向右移位 |
逻辑运算符
符号 | 作用 |
---|---|
&&或and | 逻辑与 |
||或or | 逻辑或 |
xor | 逻辑异或(用于判断一真一假的情形) |
! | 逻辑非 |
条件运算符
"? :“就是条件运算符,用法如"echo (5>2) ? 5 : 2;”,如果’?‘前面的表达式为真,输出’:‘前的内容,否则输出’:'后的内容
比较运算符
运算符 | 名称 | 描述 |
---|---|---|
x == y | 等于 | 如果x等于y,返回true(5=='5’成立) |
x === y | 绝对等于 | 如果 x 等于 y,且它们类型相同,则返回 true(5==='5’不成立) |
x != y | 不等于 | 如果 x 不等于 y,则返回 true |
x !== y | 绝对不等于 | 如果 x 不等于 y,或它们类型不相同,则返回 true |
定义
function 函数名( 参数 ){
函数体;
}
传递参数
function aaa($m){
$m = $m*5 + 10;
echo $m.'
';
}
$m = 10;
aaa($m); //按值传参,不改变原参数的值
echo $m;
?>
/*
输出结果:60,10
*/
function aaa(&$m){
$m = $m*5 + 10;
echo $m.'
';
}
$m = 10;
aaa($m); //引用传参,改变原参数的值
echo $m;
?>
//结果:60,60
默认参数:
function aaa($m, $t=5){
$m = $m*5 + 10 + t;
echo $m.'
';
}
$m = 10;
aaa($m); //没传t值,默认为5,输出65
aaa($m, 10); //t值为10,输出70
echo $m;
?>
注意:默认参数必须放在非默认参数的右侧,从PHP5开始,默认值也可以通过引用传递
变量函数
PHP很有意思的一点就是这个变量函数
function aaa(){
echo 'my name ';
}
function bbb(){
echo 'is ';
}
function ccc($name){
echo $name;
}
$func = 'aaa'; //$func值与函数名'aaa'相同
$func(); //调用aaa函数
$func = 'bbb'; //$func值与函数名'bbb'相同
$func(); //调用bbb函数
$func = 'ccc'; //$func值与函数名'ccc'相同
$func('scgg'); //调用ccc函数
?>
输出结果为:
my name is scgg
用一个例子描述,假如小明的考试成绩为*$grade*,成绩低于60分为不及格,60~79为及格,80~89为良好,90~100为优秀,那么我们可以通过if语句来判断小明所处的等级。
$grade = rand(0,100); //rand(a, b)函数可以随机生成a到b范围内的一个数
if ($grade < 60)
{
echo '小明成绩为'.$grade.',不及格,要补考';
}
else if ($grade >= 60 and $grade <= 79)
{
echo '小明成绩为'.$grade.',及格了';
}
else if ($grade >= 80 and $grade <= 89)
{
echo '小明成绩为'.$grade.',良好';
}
else
{
echo '小明成绩为'.$grade.',非常优秀!';
}
?>
执行结果为:
第一次运行结果:
小明成绩为33,不及格,要补考
第二次运行结果:
小明成绩为76,及格了
第三次运行结果:
小明成绩为100,非常优秀!
按照上例中的等级划分:
$class = array('不及格', '及格', '良好', '优秀');
$num = rand(0,3);
switch($class[$num])
{
case '不及格':
echo '等级为'.$class[$num].',小明成绩低于60分';
break;
case '及格':
echo '等级为'.$class[$num].',小明成绩在60~79之间';
break;
case '良好':
echo '等级为'.$class[$num].',小明成绩在80~89之间';
break;
case '优秀':
echo '等级为'.$class[$num].',小明成绩高于90分';
}
?>
一次运行结果:
等级为优秀,小明成绩高于90分
打印出1~20内的所有偶数
//while语句
$num = 1;
echo '20内的所有偶数为:';
while ($num <= 10)
{
if ($num % 2 == 0)
echo ' '.$num;
$num++;
}
?>
结果:
20内的所有偶数为: 2 4 6 8 10
?php
//while语句
$num = 1;
echo '20内的所有偶数为:';
do
{
if ($num % 2 == 0)
echo ' '.$num;
$num++;
}
while ($num <= 10);
?>
结果:
20内的所有偶数为: 2 4 6 8 10
输出10的阶乘
$sum = 1;
for($num = 1; $num <= 10; $num++)
{
$sum *= $num;
}
echo '10的阶乘为'.$sum;
?>
结果:
10的阶乘为3628800
PHP5中foreach语句支持对数组和对象的遍历,且只支持这些遍历。
$string_1 = array('my', 'age', 'is', '20');
$string_2 = array('1'=>'are', '2'=>'you', '3'=>'ok!');
foreach($string_1 as $value) //从头到尾遍历数组,值赋给$value
{
echo $value.' ';
}
echo '
';
foreach ($string_2 as $key => $value) //下标赋值给$key,值赋给$value
{
echo $key.':'.$value.' ';
}
echo '
';
foreach ($string_1 as $key => $value)
{
echo $key.':'.$value.' ';
}
?>
运行结果:
my age is 20
1:are 2:you 3:ok!
0:my 1:age 2:is 3:20
语句 | 作用 |
---|---|
continue | 跳过本次循环剩余步骤,直接进入下次循环 |
break | 跳出循环体 |
$text_1 = 'Hello, world!';
$text_2 = "Hello, world!";
echo $text_1.'
';
echo $text_2.'
';
$str1 = 'he said >>> $text_1'; //单引号里$text_1不会被解析,被当成普通字符串处理
$str2 = "he said >>> $text_1"; //双引号里$text_1会被解析器解析,会变为'Hello, world!'
echo $str1.'
';
echo $str2.'
';
?>
结果:
Hello, world!
Hello, world!
he said >>> $text_1
he said >>> Hello, world!
故两者区别为:
单引号 | 里面的内容不会被解析器解析,原样输出,所见即所得 |
---|---|
双引号 | 里面的内容会被解析,如果有变量,则替换为该变量的值 |
格式如下:
<<
格式化文本
str
'<<<'是关键字,必须使用;'str’是用户自定义的定界符,用于标识文本的起始和结尾。
示例:
$str = '定界符,';
echo <<<border
你学会$str 了吗?
border;
?>
结果:
你学会定界符, 了吗?
注意:在上面的代码中, 值得注意的是, 在定界符内不允许添加注释, 否则程序将运行出错。 结束标识符所在的行不能包含任何其他字符, 而且不能被缩进, 在标识符分号前后不能有任何空白字符或制表符。
函数 | 描述 |
---|---|
trim(字符串, 字符) | 去除字符串里的指定字符。若字符选项为空,则去除字符串两端的空格 |
ltrim(字符串, 字符) | 去除字符串左端的指定字符,若无指定字符,则去除左端的空格 |
rtrim(字符串, 字符) | 去除字符串右端的指定字符,若无指定字符,则去除右端的空格 |
**addslashes(str)**函数
str为需要转义的字符串,该函数会在单引号、双引号、反斜线与NULL字符前自动添加反斜线进行转义
**stripslashes(str)**函数
返回值为一个去除转义斜线后的字符串
例子:
$sql = "select * from user where id = '666'";
echo '转义后为:'.addslashes($sql);
echo '
';
$sql = addslashes($sql);
echo '反转义后为:'.stripslashes($sql);
?>
结果:
转义后为:select * from user where id = ‘666’
反转义后为:select * from user where id = ‘666’
**addcslashes(string, char)**函数
对字符串string里的指定字符char进行转义,其他非字母数字且ASCU码低于 32 以及高于126 的字符均转换成八进制表示。
**stripcslashes(str)**函数
用于还原addcslashes函数转义的字符串。
例子:
$sql = "我是scgg, hello!";
echo '转义后为:'.addcslashes($sql,$sql);
echo '
';
$sql = addcslashes($sql,$sql);
echo '反转义后为:'.stripcslashes($sql);
?>
结果:
转义后为:\346\210\221\346\230\257\s\c\g\g,\ \h\e\l\l\o!
反转义后为:我是scgg, hello!
语法:
string substr(str, start, length)
参数 | 描述 |
---|---|
str | 指定字符串对象 |
start | 指定开始截取字符串的位置。 如果参数start为负数, 则从字符串的末尾开始截取,字符串第一个字符位置为0 |
length | 指定从开始位置截取字符的个数, 如果length为负数, 则表示取到倒数第length个字符 |
例子:
echo substr("She is a well-read girl", 0);
echo "
";
echo substr("She is a well-read girl", 4, 14);
echo "
";
echo substr("She is a well-read girl", -4, 4);
echo "
";
echo substr("She is a well-read girl", 0,-4);
?>
结果:
She is a well-read girl
is a well-read
girl
She is a well-read
按字节进行字符串的比较
按字节进行字符串比较的方法有两种, 分别是 strcmp()和 strcasecmp()函数, 通过这两个函数即可 实现对字符串进行按字节的比较。这两种函数的区别是 strcmp()函数区分字符的大小写,而 strcasecmp() 函数不区分字符的大小写。 由于这两个函数的实现方法基本相同, 这里只介绍 strcmp()函数。
int strcmp (string str1, string str2)
str1 和 str2 指定要比较的两个字符串。 如果 strl 和 str2 相等, 则返回 0; 如果 str1大于 str2, 则返回值大于 0; 如果 str1小于 str2, 则返回值小于 0。
按自然排序法进行字符串的比较
int strnatcmp (string str1, string str2)
如果字符串str1和str2相等,则返回0;如果str1大于str2则返回值大于0;如果str1小于str2, 则返回值小于0。strnatcmp()函数区分字母大小写。
注意:在自然运算法则中,2比10小,而在计算机序列中,10比2小,因为"10’'中的笫一个数字是’1’它小于2。
例子:
$str1 = 'str2.jpg';
$str2 = 'str100.jpg';
$str3 = 'php';
$str4 = 'PHP';
echo strcmp($str1, $str2).'
';
echo strnatcmp($str1, $str2).'
';
echo strcmp($str3, $str4).'
';
echo strnatcmp($str3, $str4).'
';
?>
结果:
1
-1
1
1
指定从源字符串的位置开始比较
int strncmp(string str1 ,string str2,int len)
此函数用于比较前len个字符,其中len为指定参与比较的字符的数量,此函数区分大小写
strstr(string, needle)
参数 | 描述 |
---|---|
string | 必要参数, 指定从哪个字符串中进行搜索 |
needle | 必要参数, 指定搜索的对象。 如果该参数是 个数值, 那么将搜索与这个数值的 ASCII 值相匹配的字符 |
例子:
$str1 = 'str2.jpg';
$str2 = strstr($str1,'.');
$str3 = strstr($str1,'2');
echo $str2.'
'.$str3;
?>
结果:
.jpg
2.jpg
strrchr()函数与其正好相反, 该函数是从字符串后序的位置开始检索子串(子字符串)的,结果与strstr()相同
使用**substr_ count(str, char)**函数检索子串出现的次数
**str_ireplace()**函数
str_ireplace (search, replace, subject [, count])
参数 | 描述 |
---|---|
search | 要搜索的值, 可以使用array来提供多个值 |
replace | 指定替换原字符的值 |
subject | 要被搜索和替换的字符串或数组 |
count | 执行替换的数量 |
**substr_replace()**函数
substr_replace(string, repl, start,[ length])
参数 | 描述 |
---|---|
string | 原始字符串 |
repl | 指定替换后的新字符串 |
start | 指定替换字符串开始的位置。 正数表示替换从字符串的第 start 位置开始; 负数表示替换从字符串的倒 数第 start 位置开始; 0 表示替换从字符串中的第一 个字符开始 |
length | 可选参数,指定返回的字符串长度。默认值是整个字符串。正数表示被替换的子字符串的长度;负数表示待替换的子宁符串结尾处距离字符串末端的字符个数;0 表示将 repl插入到 string 的 start 位置处 |
number_format(float number[,int decimals [,string dec_point[,string thousand_sep]]])
number为要格式化的数字,dee皿als为要保留的小数位数,dec_point为指定小数点显示的字符,thousands_sep为指定千位分隔符显示的字符 。此函数可以有1、2、4个参数,但不能是3个参数
例子:
$num = 12345678.12345689;
echo number_format($num,5,'.','"');
?>
结果:
12"345"678.12346
explode(string delimiter,string str[int limit])
参数 | 描述 |
---|---|
delimiter | 边界上的分隔符 |
str | 要被分割的字符串 |
limit | 分割次数,可选参数 |
例子:
$a = 'c++%python%php%go%java';
$b = explode('%',$a);
print_r($b);
echo '
';
echo $b.'
';
echo $b[0];
?>
结果:
Array ( [0] => c++ [1] => python [2] => php [3] => go [4] => java )
Array
c++
print_r可以输出数组,echo只能输出单个元素
**implode(strihg glue, array pieces) **
glue是指定的连接符,pieces是数组类型,指定要被合并的数组。
符号 | 用法 | 例子 |
---|---|---|
^ | 表示行的开始 | ^word |
$ | 表示行的结尾 | word$ |
\b | 表示要查找的字串为一个完整的单词 | \bword\b |
\B | 表示要查找的不是一个完整的单词,而是单词或字符串的一部分 | \Btem\B |
[ ] | 忽略大小的匹配一个字符 | [tT] |
[[:digit:]] | 十进制数字集合,等同于[0-9] | |
[[:alnum:]] | 字母和数字的集合,等同于[a-zA-Z0-9] | |
[[:alpha:]] | 字母集合,等同于[a-zA-Z] | |
[[:blank:]] | 空格和制表符 | |
[[:xdigit:]] | 十六进制数字 | |
[[:punct:]] | 特殊字符集合。包括键盘上的所有特殊字符,如“!” “@” “#” “S” “?”等 | |
[[:print:]] | 所有的可打印字符(包括空白字符) | |
[[:space:]] | 空白字符(空格、换行符、换页符、回车符、水平制表符) | |
[[:graph:]] | 所有的可打印字符(不包括空白字符) | |
[[:upper:]] | 所有大写字母,等同于[A-Z] | |
[[:lower:]] | 所有小写字母,等同于[a-z] | |
[[:cntrl:]] | 控制字符 | |
| | 或,表选择 | (T|t)(M|m)表示匹配四种组合方式:TM、Tm、tM、tm |
- | 连字符,表示可选字符的范围 | [a-z] |
[^] | ^放在括号内表示排除,取非的意思 | [^a-zA-Z] |
? | 匹配前面的字符0次或1次 | cplou?r:color或colour |
+ | 匹配前面的字符一次或多次 | |
* | 匹配前面的字符0次或多次 | |
{n} | 匹配前面的字符n次 | |
{n,} | 匹配前面的字符最少n次 | |
{n,m} | 匹配前面的字符最少n次,最多m次 | |
. | 匹配除换行符外任意的一个字符 | |
\ | 转义等功能 | |
\d | 任意一个十进制数字,相当于[0-9] | |
\D | 任意一个非十进制数字 | |
\s | 任意一个空白字符(空格、换行符、换页符、同车符、水平制表符) ,相当千[\f\n\r\t] | |
\S | 任意一个非空白字符 | |
\w | 任意一个单词字符,相当于[a-zA-Z0-9] | |
\W | 任意一个非单词字符 | |
() | 1.改变限定符的作用范围;2.分组 | |
反向引用 | 依靠式子的记忆功能来匹配连续出现的字符串 | (if)(we)\1\2:匹配字符串ifweifwe |
preg_grep(string pattern, array input )
$preg = '/\w{7,}@\w{2,}\.com/';
$ary = array('[email protected]','[email protected]','[email protected]');
$preg_array = preg_grep($preg, $ary);
var_dump($preg_array);
?>
结果:
array(2) { [1]=> string(14) “[email protected]” [2]=> string(19) “[email protected]” }
注意:正则表达式前后要加’/'
preg_match()和preg_match_all()函数
**int preg_match/preg_match_all(string pattern, string subject [, array matches]) **
函数preg_match()的返回值是0或1, 因为该函数在匹配成功后就停止继续查找了。而preg_match_all()函数则会一直匹配到最后才停止。参数matches是将匹配到的字符存储在该数组里。
例子:
$str = 'This is an example!';
$preg = '/\b\w{2}\b/';
$num1 = preg_match($preg, $str, $str1);
echo $num1.'
';
var_dump($str1);
$num2 = preg_match_all($preg, $str, $str2);
echo ''
.$num2.'
';
var_dump($str2);
?>
结果:
1
array(1) { [0]=> string(2) “is” }2
array(1) { [0]=> array(2) { [0]=> string(2) “is” [1]=> string(2) “an” } }
string preg_quote (string str [, string delimiter])
将str里的特殊字符进行转义,如果有参数delimiter,那么str里也会将该参数转义。该函数返回转义后的字符串。
mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])
该函数在字符串subject中匹配表达式pattern, 并将匹配项替换成字串replacement。 如 果有参数limit, 则替换limit次。
mixed preg_replace_callback (mixed pattern, callback callback, mixed subject[, int limit])
preg_replace_ callback()函数与preg_replace()函数的功能相同,都用于查找和替换字串 。不同的是,preg_replace _ callback()函数使用一个回调函数(callback)来代替replacement参数。
array preg_split (string pattern, string subject [, int limit])
使用表达式pattern来分割字符串subject。
数组的键值为数字
键值为字符串:
姓名为Jack,年龄为22,身高为185
20
$newAry = array('name'=>'Jack', 'age'=>'22', 'height'=>'185');
echo '姓名为'.$newAry['name'].',年龄为'.$newAry['age'].',身高为'.$newAry['height'].'
';
$newAry['age'] = '20';
echo $newAry['age'];
?>
结果为:
姓名为Jack,年龄为22,身高为185
20
使用**print_r( expression )**函数:
如果该函数的参数expression为普通的整型、 字符型或实型变量, 则输出该变量本身。 如果该参数为数组, 则按一定键值和元素的顺序显示出该数组中的所有元素。
$new = array(0=>array('数学','英语'),'girl'=>array('one'=>'刘亦菲','third'=>'赵丽颖'));
echo $new[0][1].'
';
print_r($new['girl']['one']);
echo '
';
print_r($new);
?>
结果:
英语
刘亦菲
Array ( [0] => Array ( [0] => 数学 [1] => 英语 ) [girl] => Array ( [one] => 刘亦菲 [third] => 赵丽颖 ) )
//一维数组遍历
$str = array('1','2','3');
foreach($str as $value)
{
echo $value.';';
}
echo '
';
//二维数组遍历
$new = array(0=>array('数学','英语'),'girl'=>array('one'=>'刘亦菲','third'=>'赵丽颖'));
foreach($new as $value)
{
foreach($value as $val)
{
echo $val.';';
}
}
?>
结果:
1;2;3;
数学;英语;刘亦菲;赵丽颖;
$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";
?>
结果:
I have several animals, a Dog, a Cat and a Horse.
$str = '皮卡丘,杰尼龟,比雕';
$ary = explode(',',$str);
print_r($ary);
?>
结果:
Array ( [0] => 皮卡丘 [1] => 杰尼龟 [2] => 比雕 )
$str = '皮卡丘,杰尼龟,比雕';
$ary = explode(',',$str);
print_r($ary);
echo '
';
$str = implode('、',$ary);
print_r($str);
?>
结果:
Array ( [0] => 皮卡丘 [1] => 杰尼龟 [2] => 比雕 )
皮卡丘、杰尼龟、比雕
int count (mixed array [, int mode])
参数 | 描述 |
---|---|
array | 数组 |
mode | 默认为0,使用默认值时只能遍历一维数组。设置为COUNT_RECURSIVE (或 1)时,能遍历多维数组 |
$str = array('1','2','3','4','5');
$str2 = array(0=>array('1','2','3'),1=>array('1','2'));
echo count($str).'
';
echo count($str2).'
';
echo count($str2,1);
?>
结果:
5
2
7
###5.7 查询数组中指定元素
mixed array_search ( mixed needle, array haystack [, bool strict])
其中, needle 指定在数组中搜索的值; haystack 指定被搜索的数组; strict 为可选参数, 如果值为 true, 还将在数组中检查给定值的类型。
函数:array_pop( array )
array _pop()函数获取并返回数组的最后一个元素, 并将数组的长度减1,如果数组为空(或者不是数组)将返回null。
int array_push (array array, mixed var[, mixed … ])
array_push()函数将数组当成一个栈, 将传入的变量压入该数组的末尾, 该数组的长度将增加入栈变量的数目, 返回数组新的元素总数。
$new = array('1','2','3');
$num = array_push($new, '4','5', '6');
echo $num.'
';
print_r($new);
?>
结果:
6
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
array array_unique (array array)
array_unique()函数用于将值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名, 即删除数组中重复的元素。
属性 | 描述 |
---|---|
name | 表单名称 |
method | 表单的提交方式(GET或POST) |
action | 指向处理该表单页面的URL(相对位置或绝对位置) |
enctype | 设置表单内容的编码方式 |
target | 设置返回信息的显示方式 |
target属性值 | 描述 |
---|---|
_blank | 将返回信息显示在新的窗口 |
_parent | 将返回信息显示在父级窗口 |
_self | 将返回信息显示在当前窗口 |
_top | 将返回信息显示在顶级窗口 |
关于表单的其他内容请自行寻找
$user = $_POST["user"]; //获取名为user的文本框的内容
$user = $_GET["user"];
?>
$user = $_SESSION["user"];
?>
使用$_SESSION[]传参的方法获取的变量值,保存之后任何页面都可以使用,但这种方法很耗费系统资源,建议读者慎重使用。
例子:
TEST
结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dLDEaMJh-1587956186477)(D:\Typora\保存\php\图片\1.png)]
点击"提交"后:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5g3JbXm-1587956186488)(D:\Typora\保存\php\图片\2.png)]
数据类型
数据类型 | 说明 |
---|---|
字符串型 | 单个或多个字符 |
数值型 | 整数或浮点数 |
布尔型 | true或false |
对象型 | 对象 |
Null值 | 可以给变量赋null值来清除变量内容 |
Undefined | 表示该变量尚未被赋值 |
变量声明与赋值
var i, j; //变量声明
var i=1; j=100; //赋值
注释
单行注释://
多行注释:/* */
函数
function 函数名 (参数) { 函数体; }
例:
<script language="javascript">
function cheng(a, b){
return a*b;
}
document.write(cheng(5,10));
</script>
条件语句
var form=99;
if (form<60)
{
alert("不及格");
}
else if(form>=60&&form<=89)
{
alert("良好");
}
else
{
alert("优秀");}
循环
var number = 100;
while(number--)
{
document.write(number);
}
for(var i=1;i<100;i++)
{
document.write(i);
}
其它请参考菜鸟教程:JavaScript
函数:mysqli_connect(sever, username, password, dbname, port, socket)
参数 | 描述 |
---|---|
sever | MySQL服务器地址(IP地址) |
username | 用户名 |
password | 密码 |
dbname | 连接的数据库名称 |
port | MySQL服务器使用的端口号 |
socket | Unix域socket |
使用mysqli_connect函数,如果连接成功返回一个mysql连接标识,否则返回false。
方式一
$con = mysqli_connect('127.0.0.1','root','root','dbname');
方式二
$con = mysqli_connect('127.0.0.1','root','root');
if($con)
{
mysqli_select_db($con, 'dbname');
}
mysqli_query(link, query[, resultmode])
参数 | 描述 |
---|---|
link | mysql连接 |
query | sql语句 |
resultmode | 可选。一个常量。可以是下列值中的任意一个: MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个,mysqli_free_result()函数可以释放内存,两者配合使用)、MYSQLI_STORE_RESULT(默认) |
查询结果集请参考:函数大全
$result = mysqli_query($connect, "select * from ……");
mysqli_free_result($result);
mysqli_close($connect)
ort, socket)**
参数 | 描述 |
---|---|
sever | MySQL服务器地址(IP地址) |
username | 用户名 |
password | 密码 |
dbname | 连接的数据库名称 |
port | MySQL服务器使用的端口号 |
socket | Unix域socket |
使用mysqli_connect函数,如果连接成功返回一个mysql连接标识,否则返回false。
方式一
$con = mysqli_connect('127.0.0.1','root','root','dbname');
方式二
$con = mysqli_connect('127.0.0.1','root','root');
if($con)
{
mysqli_select_db($con, 'dbname');
}
mysqli_query(link, query[, resultmode])
参数 | 描述 |
---|---|
link | mysql连接 |
query | sql语句 |
resultmode | 可选。一个常量。可以是下列值中的任意一个: MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个,mysqli_free_result()函数可以释放内存,两者配合使用)、MYSQLI_STORE_RESULT(默认) |
查询结果集请参考:函数大全
$result = mysqli_query($connect, "select * from ……");
mysqli_free_result($result);
mysqli_close($connect)