PHP基础知识
1. 在HTML嵌入PHP代码
-
以<?php开始, 以?>结束
-
简短型 以<?开始 以 ?>结束, 使用这个特性得确保PHP的short_open_tag指令是启用的(默认开启)
-
如果想使用php输出一段很短的文本, 也可以使用
<? = "This is another PHP example." ?>
等价于<?php echo "This is another PHP example."?>
- 在HTML网页中有多个PHP代码块时, 前一个代码块声明的变量都可以在后面的代码块使用
2. 注释
- 单行注释
// 这是注释
#这也是注释
- 多行注释
/* */
3. 向浏览器输出数据
- echo 后面跟上你想输出的内容,(字符串, 变量…)
echo "This is String";
echo $title, $body;
在使用echo输出变量时, 可以使用花括号括起来以达到区分字符串和变量的作用
echo "$title is string";
echo "{$title} ${body}";
另外如果 <字符串里使用变量, 一定得使用双引号>
- printf()
输出混合内容(有字符串, 有变量) 的不错选择
可以控制动态信息(100) 在屏幕上的显示方式(类型, 精度,对齐方式,位置)
printf("string %d", 100); // %d为占位符, d表示这个位置放一个整数,
当printf语句运行时, 100这个参数就会嵌入占位符的位置,
1.如果你传的是浮点数, 就会向下取整,
2.如传递字符串, 会输出0,
%b >> 整数, 显示为二进制
%c >> 整数, 显示为ASCII码对应字符
%d >> 整数, 显示为十进制整数
%f >> 浮点数
%o >> 整数, 显示为八进制数
%s >> 字符串
%u >> 整数, 显示为无符号十进制整数
- sprintf()
与printf基本相同, 将结果输出到字符串,而不是显示在浏览器上
4. PHP数据类型简述
- Boolean(布尔型)
该类型数据, 表真假, 只有两个值 (真)true, (假)false
0, ‘0’, false, 空(未定义) 都为假
其余情况为真, - int(整数型)
表一个完整的整数, 不包括分数部分的数值
PHP支持也多种进制表示一个整数
例:
12 --- 十进制
012 --- 八进制
0Xc4E --- 十六进制
0b1010 --- 二进制 (八进制, 十六进制, 二进制 前面第一位都是数值零)
- float(浮点数)
也称为双精度数或实数, 用来表带有分数的数值
4.234
3.0
1.23E+11 // 科学计数法
- 字符串
连续的字符序列,使用双引号, 或单引号分隔,
"This is string";
'PHP is a great language';
"123" + "456" // 字符串数值相加会转换 = 579 (整型)
- 数组
一组可被索引的数据值的集合, 有两种形式
$arr[0] = "first"; //一种为数值索引
$brr['user'] = "Jack" //另一种为关联索引, 即键和值关联起来, 而不是使用0,1,3的数值索引
- 对象
必须显示声明, 对象的特征和行为的声明是通过类来实现的
例如编写一个类, 使用类来实例化一个对象, 然后对象就可以调用类定义的方法属性.
5.数据类型转换
- 1 在变量前加上需要转换的类型, 就可以完成转换
关键字有array, bool, int, object, double(float), string
$grade = (double)59;
$score = (int)14.8; // 浮点型转整型会向下取整
$str = (int)"This is string"; // $str = 0
$arr = (array)1114; // 则$arr[0]=1114,注:这不是向数组添加元素的标准做法
所有的数据类型都可以转换为对象, 结果为, 该变量成为对象的一个属性, 属性名称为 scalar
$model = " Toyota";
$obj = (object) $model;
则 $obj -> scalar; // 返回Toyota, "->"是PHP对象访问属性的方式
- 2 在字符串转换数值时, 如果不是以数值开头, 那它转换值为0,
$str = "123";
$num = (int)$str; // $num = 123
----
$str = "L123";
$num = (int)$str; // $num = 0, (数值类型0)
6.变量
- 1 变量以$开头, 后面为变量名称,
名称可以以下划线或字母开头
名称可以包含下划线,字母,数字
区分大小写 - 2.给变量赋值(直接赋值)
可以直接把表达式的值复制给变量 就完成了变量的赋值
$color = "red";
$num1 = "123";
- 3.给变量赋值(引用赋值)
额, 就是创建一个变量, 使它与另一个变量引用相同的内容
做到一处改变, 全部改变,
$a = 123;
$b =& $a; // $a = 123, $b = 123 (有点赋值地址的感觉)
$b = 456; // $a = 456, $b = 456
(另一种形式)
$a = 123;
$b = &$a; //一个为等号后, 一个为变量前,都为引用赋值
$b = 456;
7.超全局变量(部分)
- 1 $_SERVER 变量里包括了大量信息,
foreach($_SERVER as $var => $value)
{
echo "$var => $value <br/>";
}//一种遍历方法, 查看$_SERVER里存放的东西
$_SERVER[‘REMOTE_ADDR’]; 显示用户IP地址
$_SERVER[‘HTTP_USER_AGENT’]; //获取用户浏览器和操作系统信息
- 2 GET变量, 可以获取URL里面的参数,
例请求的URL为"http://www.example.com/index.html?a=hhh&id=123"
那么就可以使用$_GET获取到
$_GET['a'];// 值为"hhh";
$_GET['id'];//123
HTML表单使用GET提交时, PHP就可以使用$_GET来获取
- 3 POST变量 包括了POST传递的所有参数信息
使用在HTMLPOST提交数据时,获取参数,
$_POST['pass'];// 获取参数密码
- 4$GLOBALS 是一个超级全局变量数组, 但不能使用这个数组中的超级全局变量进行各种便捷操作, 因为这样做很不安全
8. 常量
- 1 常量用于, 程序运行中不会改变的数据,如PI(3.14159)
- 2 define()函数定义
define("PI", 3.14159); // 将一个值赋给一个名称
- 3 const 定义
const PI = 3.14159;
1.引用常量, 不用加$符号,
2. 常量定义后, 就不能重新定义或取消定义
3. 常量是全局化的, 可以在脚本任何地方引用
4. 一般常量名称使用大写
5. const关键字在编译时求值, define()函数在运行时求值
6. const 只能也常量为值, define可以以表达式为值
7. 常量区分大小写, 但define()函数第三个参数可以设置是否运行不区分大小写(true表大写不敏感)
9. 字符串表达
- 1 双引号内的变量和转义序列会被解析
- 2单引号内的变量和转型序列不会被解析
- 3.heredoc, 输出大量文本的便捷手段
echo <<<EXCERPT
这里是一大段文本,
这里是一大段文本,
这里是一大段文本,
EXCERPT;
1.上面语句中的EXCERPT(标识符)可以自己定义, 但只能保护数字,字母,下划线, 且不能以数字和下划线开头
2.开始标识符前必须有三个小于号(<<<)
3.里面的变量和转义序列都会解析
4.结束标识符必须放在一行的开头,前面不能有其他字符
10. 控制结构
- 1 if–else
- 2 if–elseif–else
- 3 switch
循环 - 1 while
- 2 do–while
- 3 for
- 4 foreach
foreach 为从数组中每次取一个键, 一个值,, 直到全部取完
1.foreach($arrr as $value)
{
echo "$value";//数组中的值
}
2. foreach($arr as $key => $value)
{
echo "this is Key {$key}, this is value {$value}";//键值对的感觉
}
- break 终止当前整个循环,
- continue 终止本次循环, 继续下一次循环
11. 文件包含语句
- 1 include() 里面放文件的路径以及文件名
- 2 include_once() 与上面差不多, 但确保该文件只被包含一次
- 3 require()与include差不多, 但require找不到文件时 require会产生编译错误并停止, 而include语句会产生警告并继续
- 4 require_once()确保文件只被包含一次
第一次写博客, 如有错误, 还请评论指出, 我会及时更改,谢谢阅读