-
php的基本语法格式
<?php
//php代码
?>
php脚本以 <?php 开头,以 ?> 结尾,可嵌套在html代码中。
ps:查看php、服务器信息
<?php
phpinfo();
?>
-
php的注释
<?php
//这是单行注释
/*
这是多行注释
*/
?>
-
php的输出
echo '这是内容';
print "学习php";
-
php变量
<?php
$a=123;
?>
php变量命名规范:
1.必须要以$开始。
2.变量的首字母不能以数字开始
3.变量的名字区分大小写
4.变量以字母或者下划线(_)开头,不能包含特殊符号、中文
5.变量名最好不要与标识符或系统关键字重名
6.变量遵循一定的命名规范,变量名要有意义
-
php变量的作用域
php有四种不同的变量作用域:
1.local
2.global
在函数中访问一个全局变量需要global关键字。
例如:
<?php
$a='hello,php!';
test();
function test(){
echo $a;
}
?>
函数test()无法获取$a的值,需要global修饰
<?php
$a='hello,php!';
test();
function test(){
global $a;
echo $a;
}
?>
这样就能正常访问$a的值了。
3.static
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不会丢失。
<?php
function test(){
static $a=0;
echo $a;
$a++;
}
test();
test();
test();
test();
?>
输出:0123
4.parameter
参数作用域仅在函数中生效
5.超级全局变量
a.$_POST
编写一个php文件,自己post数据给自己
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post测试</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name:<input type="text" name="fname">
<input type="submit" value="提交">
</form>
<?php
$name=$_POST['fname'];
echo $name;
?>
</body>
</html>
效果:
b.$_GET
get传输需要在网址后加参数,例如:php.php?str=你好php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>get测试</title>
</head>
<body>
<?php
$name=$_GET['str'];
echo $name;
?>
</body>
</html>
效果图:
c.$_COOKIE
设置cookie
语法:bool setcookie(string name,[string value],[int expire],[string path],[string domain]);
例如:setcookie('name','value',time()+3600,'/','test.com');
cookie名字是name,值是value,过期时间是一小时后,对整个域名(test.com)下的页面有效
获取cookie
$_COOKIE["name"];
销毁COOKIE
通过设置过期使cookie销毁:setcookie('name','','time()-3600');
代码实例:
<?php
setcookie('n','php',time()+60);
echo $_COOKIE['n'];
?>
效果:
d.$_SESSION
创建SESSION:session_start();
创建session变量:$_session['sname']="wybing";
结束当前会话:session_destroy();
删除session中创建的变量:unset($_SESSION['键名']);
代码实例:
<?php
session_start(); //不要漏了启动
setcookie('n','php',time()+60);
$_SESSION['sname']="wybing";
echo $_SESSION['sname'];
session_destroy(); //销毁
?>
效果:
、
此外还有
$GLOBALS
$_SERVER
$_REQUEST
$_FILES
$_ENV
-
php数据类型
1.整型(Integer)
主要有十进制、八进制(0开头)、十六进制(0x开头)
2.浮点型(Float)
带小数的数字或指数形式(2.3e5)
3.布尔型(Boolean)
只有true和false
4.字符串(String)
1.用""或者''括起来的字符
2.在字符串非常大时,使用定界符<<< (三个小于号)
例如:
<?php
//要在$beizi的字符串中显示
$dingjie = <<<ABC
如果
非要在这个滚犊子
前
面<br/>
加上一段
<i>距离的话</i>
我想说:<h1>思想有多远,你就跟我滚多远</h1>
ABC;
echo $dingjie;
?>
显示效果:
字符串用双引号和单引号的区别?
a.双引号解析变量,但是单引号不解析变量。
<?php
$php='学习php';
echo "$php";
//输出 学习php
?>
<?php
$php='学习php';
echo '$php';
//输出 $php
?>
b.在双引号中,变量名后面接字母,会把变量名和后面的字母视为一个整体,需要特殊字符(空格、!等隔开)或者使用{}
<?php
$php='学习php';
$str="$phpaaaa";
echo $str;
//Notice: Undefined variable: phpaaaa in D:\myphp_www\PHPTutorial\WWW\test\php1.php on line 3
?>
而使用空格 隔开
<?php
$php='学习php';
$str="$php aaaa";
echo $str;
//学习php aaaa
?>
使用{}
<?php
$php='学习php';
$str="{$php}aaaa";
echo $str;
//学习phpaaaa
?>
c.双引号解析转义字符,单引号不解析(\'和\除外)
d.双引号和单引号可以相互嵌套,双引号中的单引号里的变量可以被解析
<?php
$php='学习php';
$str="'$php'aaaa";
echo $str;
//'学习php'aaaa
?>
e.使用.拼接,使用/转义
5.数组(Array)
数组可以看作是变量的集合。$cars=array("Volvo","BMW","Toyota");
6.对象(Object)
<?php
class foo{
function do_foo(){
echo "Doing foo.";
}
}
$bar=new foo;
$bar->do_foo();
?>
后面再详细介绍
7.空值(Null)
NULL表示没有值。
ps:var_dump()方法,返回变量的值和数据类型。
-
常量
常量的值在脚本中不能被改变,一个常量由字母、下划线、数字组成,数字不能作为首字母出现。
定义:
<?php
//区分大小写的常量
define("hello","你好");
?>
<?php
//不区分大小写的常量
define("hello","你好,php",true);
?>
常量在定义后,默认是全局变量,可以在整个的脚本的任何地方使用。
魔术常量
1.__LINE__:文件中的当前行号
2.__FILE__:文件的完整路径和文件名
3.__DIR__:文件所在的目录
4.__FUNCTION__:函数名称
5.__CLASS__:类的名称
6.__TRAIT__:Trait的名字
7.__METHOD__:类的方法名
8.__NAMESPACE__:当前命名空间的名称
-
运算符
1.算术运算符
运算符 | 名称 | 备注 |
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | |
% | 模(取余) | |
- | 负号 | -x |
. | 字符串连接符 | "a"."b" |
++ | 自增 | |
-- | 自减 | |
注意:++X与X++的不同
2.赋值运算符
=、+=、-=、*=、/=、%=、.=(连接两个字符串)
3.比较运算符
==、===(全等)、!=、!==(不全等)、>、<、>=、<=、<>(不等)
4.逻辑运算符
运算符 | 名称 | 描述 | 实例 |
x and y | 与 | 如果x和y都为true,则返回true | x=6 y=3 (x<10 and y>1) 返回true |
x or y | 或 | 如果x和y至少有一个为true,则返回true | x=6 y=3 (x==6 or y==5) 返回true |
x xor y | 异或 | 如果x和y有且仅有一个为true,则返回true | x=6 y=3 (x==6 xor y==3) 返回false |
x && y | 与 | 如果x和y都为true,则返回true | x=6 y=3 (x<10 && y>1) 返回true |
x || y | 或 | 如果x和y至少有一个为true,则返回true | x=6 y=3 (x==5 || y==5) 返回false |
! x | 非 | 如果x不为true,则返回true | x=6 y=3 !(x==y) 返回true |
注意:短路性质
5.数组运算符
+、==、===、!=、<>、!==
6.三元运算符
表达式?表达式:表达式
7.组合运算符
$c=$a <=> $b;
如果$a>$b,则$c的值为1
如果$a=$b,则$c的值为0
如果$a<$b,则$c的值为-1
运算符的优先级
请自行百度!