PHP的学习
PHP脚本以<?php 开始 ?>结束
<?php
//此处写代码
? >
php默认文件扩展名.php
php文件通常包含HTML标签以及一些PHP脚本代码
“echo”是php输出函数,下面是一个简单例子
<!DOCTYPE html>
<html>
<body>
<h1>我的第一张php页面</h1>
<?php
echo “hello world!”;
? >
</body>
</html>
PHP大小写敏感:在PHP中,所有用户定义的函数、类和关键词(例如if、else、echo等)以下三种写法都是合法的
echo
ECHO
EcHo
但是在对变量定义时时敏感的,如下
echo "My car is " . $color . "<br>";
echo "My house is " . $COLOR . "<br>”;
echo "My boat is " . $coLOR . "<br>";
只有第一句会输出变量的值。
变量是存储信息的容器
$x = 5;
$y = 6;
$z = $x+$y;
类似于代数运算:
x = 5;
y = 6;
z = x + y;
PHP变量的名称可以取得很短如x,y;也可以取得很长如carname、peoperpassword。
PHP变量的规则
1.变量以$符号开头,其后是变量的名称
2.变量名称必须以字母或下划线开头
3.变量名称不能以数字开头
4.变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
5.变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
PHP变量名称对大小写敏感
PHP没有为其创建的命令,会在第一次赋值时被创建(无需告诉类型,php会自动转化正确的数据类型)
local和global作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
提示:若果想要输出函数内部的变量,那么请在函数内部变量前加global,另一方面如果函数内部想访问全局变量可以使用$GLOBALS[index]数组,下标存有变量名:如下示:
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
static关键词
函数执行后,会删除所有的变量,如果想保留变量的值需要在第一次声明变量时使用static关键词。
注意:
html中可以嵌套PHP脚本,php中的echo输出语句也可以包含html标记(试验一下,如果php里嵌套html的话,在thinkPHP框架中的Runtime中的Cache中会定位到错误的位置)
php中的输出语句echo print
echo可以输出一个以上的字符串
print只能输出一个字符串,并始终返回1
提示:echo的效率要比print好
数据类型:
php字符串:字符串是字符序列,可以使用单引号或者双引号:如:”hello world!” ‘hello world’ 具有同样的效果。
php整数:不能含有空格、逗号、小数点。整数正负均可,十进制、十六进制(前缀是0x)或八进制(前缀0)。
var_dump()会返回数据的类型和值,如:$X= 3690 ; var_dump($x); 会返回int(3690).
php浮点数:浮点数是由小数和指针形式的数字。
php逻辑:逻辑是true或false,如$x = true;$y = false.
php数组:数组可以在一个变量中存储多个值,用var_dump()返回变量的数据类型和值,如:
<?php
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>
返回的数据是:array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB” }
简单解释一下:array(3)顾名思义是指这个数组有三个值,【0】=>string(5)”Volvo” 是指数组下标中为0的值是个字符串类型,数组长度是5,值是Volvo。
php对象:对象是存储数据和有关如何处理数据的信息的数据类型,在php中必须明确的声明对象。声明对象的类使用class关键词。类中包含属性和方法的结构。然后在对象类中定义数据类型,然后在该类的实例中使用此数据类型。
php NULL值:NULL表示变量无值,NULL值标示变量是否为空,也用于区分空字符串和空值数据库,可以把值设置成NULL,将变量清空。如:
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
返回的结果就是:NULL
PHP字符串函数
php strlen()函数:返回字符串的长度,以字符计,如:
echo strlen(“hello world!”);返回的结构就是12.
php strpos()函数:用来检索字符串内指定的字符或文本。若找到则返回首字符的位置,否则返回FALSE,如:
echo(“hello world!”,“world”);输出的结果就是6。因为字符串的首字符位置是0.
php常量
常量是单个值得标示符,在脚本中无法改变其值,且常量名称前是没有$符号(与变量不同,常量在整个脚本中是自动全局的)
常量的定义:设置常量使用define()函数,使用三个参数:
1.首个参数定义常量的名称;
2.第二个参数定义常量的值;
3.可选的第三个参数规定常量名是否对大小写敏感。默认是fales。
如:敏感:define(“GREETING”,”Welcome to W3School.com.cn!”);echo GREETING;
不敏感:define(“GREETING”,”Welcome to W3School.com.cn!”,true); echo greeting;
php运算符
php算数运算符:
直接实例搞起来,如:
<?php
$x = 11;
$y = 6;
echo($x + $y);//进行+运算
echo($x - $y);//进行-运算
echo($x * $y);//进行*运算
echo($x / $y);//进行除法运算
echo($x % $y);//进行曲模运算
?>
php赋值运算符
php中的赋值运算符是=,认为右侧值赋值给左侧值。
php字符串运算符
运算符 . 串接;
运算符 .= 串接赋值。
如:
$a = “hello”;
$b = $a.”world!”;
echo $b//会输出hello world!
$x = “helo”;
$x .= “world!”;
echo $x//会输出hello world!
PHP递增/递减运算符
++$x 表示:加1后返回
$x++ 表示:返回后加1
--$x 表示:减1后返回
$x— 表示:返回后减1
php比较运算符
== 等于
===全等 类型相同
!= 不等于
<>不等于
!== 不全等 类型不相同返回true
> 大于
< 小于
>= 大于或等于
<= 小于或等于
如:
$x = 100;
$y = “100”;
var_dump($x === $y) 返回bool(false) 因为类型不同
var_dump($s !== $y) 返回bool(true) 因为类型不同
php逻辑运算符
and or xor异或
&& 与
|| 或
! 非
PHP条件语句
使用条件语句的目的是根据条件选择执行的任务。
1.if 语句
2.if…else语句
3.if…elseif…else语句
4.switch语句
switch语句:有选择的执行代码块,避免冗余的if...elseif...else代码块
PHP while循环
一块代码需要重复执行时使用
1.while
2.do…while 先执行一次,再判断是否循环执行
3.for
4.foreach 遍历数组中的每个元素并循环代码块’(只适用于数组)
如:
<?php
$colors = array(“red”,”green”,”blue”);
foreach($colors as $value){
echo “$value”<br>
}
?>
PHP函数
php中的内建函数超过1000个,用户也可以自建函数
函数可以在程序中重复使用的代码块,页面加载是函数不会立即执行,只有在调用的时候才会执行。
提示:函数名对大小写不敏感,函数声明以function开头。函数名应该能反映出函数要执行的任务。
函数中的参数:在括号中定义,如果定义多个可以用逗号隔开
默认参数:如果没有传递参数则使用默认值。
PHP数组
数组能够在单个变量中保存一个或多个值。
php中使用 array()函数创建数组
1.索引数组:带有数字索引的数组
2.关联数组:带有指定建的数组
3.多维数组:包含一个或多个的数组的数组
count()函数用来获取数组的长度,如:count($colors);
关联数组:
关联数组是使用分配给数组的指定键的数组,两种创建方式:
$age = array(“tom”=>”20”,”tim” = >”18”,”jock” = >”22”);
或者:
$age[’tom’] = “20”;
$age[’tim’] = “18”;
$age[‘jock’] = 22;
遍历关联数组:
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
输出结果:
Key=Bill, Value=35
Key=Steve, Value=37
Key=Peter, Value=43
php数组排序函数
sort():以升序对数组排序
rsort():降序对数组排序
asort():根据值,以升序对关联数组排序
ksort():根据键,以升序对关联数组排序
arsort():根据值降序排序
krsort():根据键降序排序
如:根据键值进行升序排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
输出结果是:
Key=Bill, Value=35
Key=Peter, Value=43
Key=Steve, Value=37
PHP全局变量-超全局变量
意味在脚本的全部作用域都可以使用
超全局变量有:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
$GLOBALS:引用全局作用域可用的全部变量(php脚本任意位置均可访问$GLOBALS[index]数组存储所有的全局变量)
<?php
$x = 30;
$y = 65;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
输出95.
$_SERVER:这种超全局变量保存关于报头、路径、和脚本位置的信息。
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
输出:
/example/php/demo_php_global_server.php
www.w3school.com.cn
www.w3school.com.cn
http://www.w3school.com.cn/tiy/s.asp?f=demo_php_global_server
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36
/example/php/demo_php_global_server.php
$_REQUEST:用于收集HTML表单提交的数据,下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST 来收集 input 字段的值:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
$_POST:PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form> 标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_POST 来收集输入字段的值:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
$_GET:$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_GET 也可以收集 URL 中的发送的数据。
假设我们有一张页面含有带参数的超链接:
<a href="/demo/test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>