一.PHP 语法
1.基本的 PHP 语法
- PHP 脚本以
<?php
开始,以?>
结束:
<?php
php代码
?>
ps:PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
1.echo 可以打印多个变量,且没有返回值
- print 仅能打印单个变量,要打印多个,用. 进行字符串拼接, ;返回 1
<?php
$email = 'admin@php.cn';
// echo 回显,效率最高,没有返回值
echo $email, '<br>';
print $email . '<br>';
//查看print返回值
echo print $email;
?>
2.PHP 中的注释
1.//单行注释
2.#单行注释,这个基本不用
3./ 多行注释/
二.PHP 变量
我们可以这样理解变量:
变量是临时存储数据的容器
变量是实现数据复用的手段1.PHP 变量规则
- 变量以 \$ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的(
$y
和$Y
是两个不同的变量)
ps:变量名分大小写,函数是不区分大小写
2.变量的动态
变量的动态: 是指变量的类型可以随值而变化
<?php
// 变量的动态: 是指变量的类型可以随值而变化
$var = 100;
// var_dump() 函数用于输出变量的相关信息
var_dump($var);
echo '<hr>';
$var = 'php.cn';
var_dump($var);
?>
3.可变变量
<?php
// 可变变量
$var = 'email';
// 我们要得到的效果:$email = 'admin@php.cn';
// 变量名可以动态的创建
$$var = 'admin@php.cn';
/*我们可以这么理解:因为$var = 'email';所以$$var
相当于在它的值前加$即$email所以$$var=$email='admin@php.cn'*/
echo $email;
?>
4.变量的有值传递与引用传递二种方式赋值
<?php
// 变量的有值传递与引用传递二种方式赋值
// 1. 值传递,也是默认的方式
$price1 = 99;
$price2 = $price1;
// 更新price2
$price2 = 199;
// 查看price1
echo 'price1 = ' . $price1 . '<hr>';
// 2. 引用传递
$price1 = 99;
// 在等号的右边/右值前面加上&(取地址符)
// 当前$price2中保存的并不是99, 而是$price1变量在内存中的地址, [0xabcd1234] = 99
$price2 = &$price1;
// 更新price2
$price2 = 199;
// 查看price1, 会发现print1与price2同步更新了
echo 'price1 = ' . $price1 . '<hr>';
ps:值传递:就是将一个变量的值,复制给另一个变量,不会对原变量产生影响.
引用传递:是将变量的值,在内存中的地址,传递给另一个变量,即 price1 和 price2 都指向内存中的同一个地址;其中一个发生改变时,另一个变量的值,相应的也改变。
5.变量的检测与删除
这里我们介绍3种函数:isset():如果该变量存在且值不为 null 才是 true。
unset():删除变量, 没有返回值
empty() 判断一个变量是否被认为是空的,有返回值。
<?php
// 变量的检测与删除
// 打开所有的报错
error_reporting(E_ALL);
// echo $username;
// 变量检测
$username = 'php中文网是个好网站!';
// $username = null;
// isset():如果该变量存在且值不为null才是true
if (isset($username)) echo $username. '<br>';
// else echo '没有定义该变量'.'<hr>';
// unset():删除变量, 没有返回值
unset($username);
echo $username;
$var = '';
////''空字符串会被empty()认为是空的var_dump()函数用于输出变量的相关信息 。
if (empty($var)) var_dump($var). '<br>';
?>
6.变量的类型转换
- 1.自动转换
<?php
// 变量的类型转换
// 自动转换: 是由php系统偷偷进行的,不需要用户主动参与
$a = null;
$b = true;
$c = false;
$d = '5g';
$e = 'php';
$f = 15;
//null在算术运算中自动转为0
echo $a + 10, '<br>';
//true在算术运算中转为1
echo $b + 10, '<br>';
//遇到字符串如果数字在首位会解析数字。
echo $d + 10, '<br>';
//遇到首位是字符会报错
echo $e + 10, '<br>';
?>
- 2.强制转换
<?php
// 变量的类型转换
// 强制转换
// 如果不想看到警告,通过强制转换解决
$e = 'php';
//将$e强制转换为int类型,返回0
echo (int)$e + 10, '<br>';
//intval() 函数用于获取变量的整数值。intval()比int更实用
echo intval($e) + 20, '<br>';
//strval() 函数用于获取变量的字符串值
echo strval($f) . ' hello';
?>
- 3.强制转换
<?php
// 变量的类型转换
// 永久转换
//定义$f为整型
$f = 15;
//settype() 函数用于设置变量的类型。
//gettype() 函数用于获取变量的类型
//语法:bool settype ( mixed &$var , string $type )
echo gettype($f) .'<br>';
settype($f, 'string');
echo gettype($f);
?>
三.数据类型
1.基本类型
// 字符串
$name = '手机';
// 数值
$price = 2980;
// 布尔
$is5G = false;
2. 复合类型
<?php
// 2. 复合类型, 对象,数组
// 对象
$obj = new stdClass;
// 对象是属性和方法的无序集合
$obj->name = 'peter zhu';
$obj->age = 35;
echo $obj->name, '<hr>';
// 数组
$arr = ['电脑', 4500, 'Dell'];
// print_r()以人性化的方式打印变量,true表示不直接打印,而返回
// 返回就是一定要有一个接收者
$str = print_r($arr, true);
//<pre> 标签可定义预格式化的文本。
echo '<pre>'.$str.'</pre>';
// 基本类型: 标量, 单值
// 复合类型: 多值,
?>
3.特殊类型
<?php
// 3. 特殊类型
// NULL
$num = null;
//var_dump() 函数用于输出变量的相关信息
var_dump($num);
echo '<br>';
// $f就是文件资源类型
//fopen() 函数打开一个文件或 URL
//"r"(只读方式打开,将文件指针指向文件头)
$f = fopen('demo1.php', 'r');
var_dump($f);
echo '<br>';
echo gettype($f);
?>