PHP 学习之路(3)—— PHP基本语法,php基本语法
语言与语言之间都会有相似的语法,也有它独有的语法。所以本节还是得记录一下PHP的基础语法~
目录
一、PHP标记
二、基础语法
1. PHP语句都以英文分号【;】结束。
2. PHP注释
3. 输出语句:echo
4. 变量及变量类型
5. 字符串
6. 字符串连接
7. 表单数据
8. 运算符
9. 分支与选择
10. PHP函数
附录
一、PHP标记
PHP也是通过标记来识别的,像JSP的<% %>的一样,PHP的最常用的标记是:<?php php代码 ?> 。
以“<?”开始,“?>”结束。
该风格是最简单的标记风格,默认是禁止的,可以通过修改short_open_tag选项来允许使用这种风格。
[捂脸哭]我们其实目前不需要去配置这个风格哈,老老实实用<?php php代码 ?>就够了~
二、基础语法
1. PHP语句都以英文分号【;】结束。
2. PHP注释
大体上有三种:
<?php
/*
多行注释
*/
echo "string";// 单行注释
echo "string";# 单行注释
?>
sublime text 3神奇快捷键:ctrl shift d =>复制当前行到下一行
3. 输出语句:echo
<?php
echo "string";
echo("string");
?>
PHP可以嵌套在HTML里面写,所以也可以输出HTML、CSS、JavaScript语句等。
<font id="testPhpJs"></font>
<?php
echo "<style type='text/css'>#testPhpJs {color: red}</style>";
echo "<h1>一级标题</h1>";
echo "<script>var font = document.getElementById('testPhpJs');font.innerText='php输出js填充的文字';</script>";
?>
<input type="text" name="test" value="<?php echo "123"; ?>">
网页输出结果:
4. 变量及变量类型
PHP的类型有六种,整型、浮点型、字符串、布尔型、数组、对象。
但是定义的方式只有一种:$变量名。PHP变量的类型会随着赋值的改变而改变(动态类型)
<?php
$variable = 1; //整型
$variable = 1.23; //浮点型
$variable = "字符串"; //字符串 ""
$variable = '字符串'; //字符串 ''
$variable = false; //布尔型
?>
特殊的变量(见附录)。
5. 字符串
关于字符串,我们还有几点需要说的:
a. 双引号和单引号包起来的都是字符串:'阿'、"阿"。注意单引号里不能再加单引号,双引号里不能再加双引号,实在要加的话记得用转义符“\”
b. 如果想输出很大一段字符串,那么就需要定界符来帮忙。定界符就是由头和尾两部分。
<?php
echo <<<EOT
hello world!
lalala~
EOT;
// 这个定界符的尾巴和前面<<<后面的字符应该一样
// !定界符的尾巴必须靠在最左边
?>
定界符的名字是自己起的,乐意叫啥就叫啥,但是它的尾巴必须靠在最左边,不能有任何其他的字符!空格也不行:
<?php
//定界符的名字随便起
echo <<<ERROR
ERROR;
//但是尾巴必须靠左,前面不能有任何东西。比如这样就是错的 ↑
?>
看!上面这个注释都变成黄色了~它都报错了,大家写的时候可不能这么写哦~
6. 字符串连接
不同于Java的“+”号连接符,PHP用的是点【.】。在做数据库查询语句的时候,常会遇到要与变量拼接的情况。这里给个小技巧:
在数据库相关软件中先用一个数据例子写好查询语句,并测试直到执行成功:
然后将数据换成变量:
1. 将sql语句用字符串变量存储。
2. 将写死的数据换成两个双引号
2. 在双引号中间加两个连接符 点【.】
3. 在连接符中间将变量放入
<?php
$isbn = "9787508353937";//存储isbn的变量
$sql = "SELECT * FROM bookinfo WHERE isbn = '9787508353937'";
// $sql = "SELECT * FROM bookinfo WHERE isbn = '""'";
// $sql = "SELECT * FROM bookinfo WHERE isbn = '".."'";
$sql = "SELECT * FROM bookinfo WHERE isbn = '".$isbn."'";
//修改完成
?>
保证不会出错哈哈(这个多用于数据库的增删改查,避免sql语句的错误)
7. 表单数据
表单在提交数据的时候,method有两种方式:post & get。所以PHP有几种不同的方式来获取表单数据:
<?php
$_POST['表单控件名称'] //对应POST方式提交的数据
$_GET['表单控件名称'] //对应GET方式提交的数据
$_REQUEST['表单控件名称'] //同时适用于两种方式
?>
8. 运算符
运算符和其他语言基本一致,如果不了解的可以去看看我的java运算符(https://blog.csdn.net/ahanwhite/article/details/89461167)。
但这里还是有一个比较特殊的:
字符串连接赋值:【.=】
<?php
$str = "这是连接";
$str .= "字符串的运算符";
// 那么现在的$str = "这是连接字符串的运算符";
?>
9. 分支与选择
同样和其他语言差别不大,有兴趣可以看我的java控制语句(https://blog.csdn.net/ahanwhite/article/details/89461652)
10. PHP函数
PHP的函数和Java还是有点儿区别,定义的格式:
<?php
function 函数名($参数) {
函数体;
}
?>
a. 函数参数可以为空
b. 如果需要修改函数的值,可以使用引用参数传递,但是需要在参数前面加上【&】
c. 函数的参数可以使用默认值,在定义函数是参数写成: $参数 =“默认值”; 即可。(默认值又叫缺省值)。
<?php
//改变参数变量的值
function myName(&$name) {
$name = "baibai";
echo $name;
}
$name = "huanhuan";
myName($name);
//设置默认参数值
function myName2($name="baibai") {
echo "<br>".$name;
}
//不传参测试默认值
myName2();
?>
输出结果:
d. PHP也有一些自己的系统函数(比如echo),这里再列几个常用的字符串函数:
- 字符串长度计算
$a = mb_strlen("abdsd");
$b = mb_strlen("lalalal",'UTF-8')
我一般用后面这个,按utf-8编码计算长度。
- 在一个字符串中查找另一个字符串
strstr(字符串1,字符串2)
补充一个函数 var_dump() 【实名感谢石老师】
用来判断一个变量的类型与长度, 并输出变量的数值, 如果变量有值输的是变量的值并回返数据类型. 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
<?php
$a = strstr("asgduiashufai","dui");
$b = strstr("asgduiashufai","?");
echo var_dump($a);
echo "<br>";
echo var_dump($b);
?>
如果存在前面的字符串里存在后面的字符串,那么会返回字符串2以及在字符串1里后面的所有字符。如果不存在,就会返回false(但是不能直接输出,直接输出好像是空值,判断一下再输出提示信息会比较好)
- 按照ASCII码比较两个字符串大小
strcmp("字符串1","字符串2")
//1比2打,返回大于0,2比1打,返回小于0,一样大的话返回等于0
- 将html标记作为字符串输出
htmlspecialchars("字符串")
- 改变字符串大小写
strtolower("字符串");//将字符串全变成小写
strtoupper("字符串");//将字符串全变成大写
- 加密函数
md5() 将一个字符串进行 MD5 加密计算。(没有解密的函数,用于密码,检验时将用户提交的密码加密之后进行对比)
$a = md5("字符串");
附录
特殊的变量
服务器变量名 |
变量的存储内容 |
$_SERVER["HTTP_ACCEPT"] |
当前Accept请求的头信息 |
$_SERVER["HTTP_ACCEPT_LANGUAGE"] |
当前请求的Accept-Language头信息,如zh-cn |
$_SERVER["HTTP_ACCEPT_ENCODING"] |
当前请求的Accept-Encoding头信息,如gzip、deflate |
$_SERVER["HTTP_USER_AGENT"] |
当前用户使用的浏览器信息 |
$_SERVER["HTTP_HOST"] |
当前请求的Host头信息的内容,如localhost |
$_SERVER["HTTP_CONNECTION"] |
当前请求的Connection头信息,如Keep-Alive |
$_SERVER["PATH"] |
当前的系统路径 |
$_SERVER["SystemRoot"] |
系统文件夹的路径,如C:\Windows |
$_SERVER["SERVER_SIGNATURE"] |
包含当前服务器版本和虚拟主机名的字符串 |
$_SERVER["SERVER_SOFTWARE"] |
服务器标志的字串,如Apache/ (Win32) PHP/5.2.8 |
$_SERVER["SERVER_NAME"] |
当前运行脚本所在服务器主机的名称,如localhost |
$_SERVER["SERVER_ADDR"] |
服务器所在的IP地址,如127.0.0.1 |
$_SERVER["SERVER_PORT"] |
服务器所使用的端口,如80 |
$_SERVER["REMOTE_ADDR"] |
正在浏览当前页面用户的IP地址 |
$_SERVER["DOCUMENT_ROOT"] |
当前运行脚本所在的文档根目录,即htdocs目录 |
$_SERVER["SERVER_ADMIN"] |
指明Apache服务器配置文件中的SERVER_ADMIN参数 |
$_SERVER["SCRIPT_FILENAME"] |
当前执行脚本的绝对路径名 |
$_SERVER["REMOTE_PORT"] |
用户连接到服务器时所使用的端口 |
$_SERVER["GATEWAY_INTERFACE"] |
服务器使用的CGI规范版本 |
$_SERVER["SERVER_PROTOCOL"] |
请求页面时通信协议的名称和版本 |
$_SERVER["REQUEST_METHOD"] |
访问页面时的请求方法,如get、post |
$_SERVER["QUERY_STRING"] |
查询的字符串(URL中第一个问号?之后的内容) |
$_SERVER["REQUEST_URI"] |
访问此页面所需的URI |
$_SERVER["SCRIPT_NAME"] |
包含当前脚本的路径 |
$_SERVER["PHP_SELF"] |
当前正在执行脚本的文件名 |
$_SERVER["REQUEST_TIME"] |
请求开始时的时间戳 |
以上,阿里嘎多,20190426 from ahanwhite。
PHP之友评论