这里默认大家都有一定的javascript基础,通过php与javascript的对比来学习,会更容易的接受,也能更好地区分两者。
1.PHP标记
-
<?php
可以让代码进入“PHP 模式” -
?>
可以让代码退出“PHP 模式” - 即我们所写的PHP 代码都要在<?php ?> 之内。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是一个包含 PHP 脚本的网页</title>
</head>
<body>
<h1>这是一个包含 PHP 脚本的网页</h1>
<p>这里原封不动的输出</p>
<?php
// 这里是 PHP 代码,必须满足 PHP 语法
$foo = 'bar';
echo $foo;
?>
<p>这里也不变</p>
<p><?php echo '<b>这还是 PHP 输出的</b>'; ?></p>
</body>
</html>
就好比在HTML 中嵌套使用 JavaScript一样,但是不同的是 JavaScript 运行在客户端,而 PHP 运行在服务端。
2.数据类型
基本数据类型: string, integer(整型,整数),float(浮点型,小数),bollean
复合数据类型: array,object
特殊数据类型: Null,资源
常见的php数据类型和javascript基本一致。
3.输出内容方式:echo print print_r var_dump(就好比javascript中console.log);
echo 和 print 主要是用来输出 ‘’基本数据类型”
<?php
// 不需要像函数那样通过 () 去使用
// 注意:echo 后面紧跟着一个空格
echo 'hello php';
echo 'hello', 'world';
// print 与 echo 唯一区别就是只能有一个参数
print 'hello php';
?>
print_r 和 var_dump 主要用来输出 “复合数据类型”
<?php
// 这里先定义一个数组,后面会详细讲解
$arr = array(
"name" => "张三",
"age" => 18,
"gender" => "男"
);
// print_r,var_dump 是一个函数,必须跟上 () 调用,两者的区别是,var_dump打印出来的信息更详细。
print_r($arr);
var_dump($arr);
?>
大家可以试着打印一下,自己分析分。
4.与HTML混编
// 普通嵌入
<p><?php echo 'hello'; ?></p>
// 语句混编
<?php if ($age >= 18) { ?>
<p>成年人</p>
<?php } else { ?>
<p>小朋友</p>
<?php } ?>
// 还可以这样
<?php if ($age > 18): ?>
<p>成年人</p>
<?php else: ?>
<p>小朋友</p>
<?php endif ?>
接下来会经常使用上面这些方式,这里大家可以先简单了解一下
5.注释
<?php
//php中的单行注释
#php中的单行注释(比较生僻不建议使用)
/*
php中的多行注释
php中的多行注释
php中的多行注释
*/
?>
php和javascript中的注释一样(#这种方式只要了解就可)
----------------------手动分割分,下面介绍的会和javascript中有一些不同,希望大家能重点记忆
变量
PHP 中声明一个变量是用一个美元符号后面跟变量名来表示。变量名同样是区分大小写的。$name = '张三'
PHP 中变量无需声明类型,变量的类型根据值的类型来推断。
常用函数
isset():判断变量是否定义了,同时它还可以判断变量的值是否为null,如果定义了且值不为null,则返回true,否则返回false
empty():判断变量是否为空值,为空的值有:"" 0 "0",null,false,array().如果值为以上中的某一个,则返回值
-
unset():删除变量
如果删除一个变量,那么变量的值会置为null
可以同时删除多个变量
如果在函数中删除全局变量,那么并不会真正的将全局变量删除(以后再说)
判断数据类型:(了解即可)
is_string():判断当前变量是否是字符串类型
is_bool():判断当前变量是否是布尔类型
is_int():判断当前变量是否是整形类型
is_float():判断当前变量是否是浮点类型
is_array():判断当前变量是否是数组类型
is_object():判断当前变量是否是对象类型
字符串(重要)
PHP 有多种创建字符串的方式:单引号、双引号等。
单引号字符串
不支持特殊的转义符号,例如 \n
如果要表示一个单引号字符内容,可以通过 \'
表达
如果要表示一个反斜线字符内容,可以通过 \\
表达
双引号字符串
支持转义符号:\" \ $ \r \n \t
支持变量解析
<?php
// ====== 单引号 ======
echo 'hello\nworld';
// => `hello\nworld`
echo 'I\'m a better man';
// => `I'm a better man`
echo 'OS path: C:\\Windows';
// => `OS path: C:\Windows`
// ====== 双引号 ======
echo "hello\nworld";
// => `hello world`
$name = 'zce';
echo "hello $name";
// => `hello zce`
?>
数组(重要)
php中数组可以分为两类
索引数组(与javascript中数组基本一致)
<?php
// 定义一个索引数组
$arr = array(1, 2, 3, 4, 5);
var_dump($arr);
// PHP 5.4 以后定义的方式可以用 `[]`
$arr2 = [1, 2, 3, 4, 5];
var_dump($arr2);
关联数组(有点像javascript中的对象)
<?php
// 注意:键只能是`integer`或者`string`
$arr = array('key1' => 'value1', 'key2' => 'value2');
var_dump($arr);
// PHP 5.4 以后定义的方式可以用 `[]`
$arr2 = ['key1' => 'value1', 'key2' => 'value2'];
var_dump($arr2);
?>
数据类型转换
<?php
$str = '132';
// 将一个内容为数字的字符串强制转换为一个整形的数字
$num = (int)$str;
// 将一个数字强制转换为布尔值
$flag = (bool)$num;
?>
运算符
数学运算符,逻辑运算符与 JavaScript 基本一致,无额外特殊情况。
注意:字符串连接(拼接)采用的是比较特殊的
<?php
$name = 'zce';
// 拼接 `hey ` 和 `zce`
$message = 'hey ' . $name;
// 相当于 +=
$foo .= $message
?>
流程控制(与javascript基本相同)
分支结构
if...else
switch...case
循环结构
for
while
foreach ---- 专门用来遍历数组
<?php
$arr = array('name' => 'zhangsan', 'age' => '18');
foreach ($arr as $key => $value) {
echo $key . ' ' . $value;
}
?>
指令式的 if、for、foreach、while 单独掌握
<?php
// 指令式就是将开始 { 换成 : 结束 } 换成 endif;
if ($i > 0) :
echo 'ok'
endif;
// for foreach while 也是一样
for ($i = 0; $i < 10; $i++) :
echo $i;
endfor;
?>