长标签
<?php //开始标签
echo "hello" ; //PHP代码
?> //结束标签
当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。 (比如如下代码php脚本标签之外的都是html代码)
<!DOCTYPE HTML>
<html>
<head>
<title>php嵌入html文件里面</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
hello你好
<!--
写在PHP脚本标签之间的是PHP代码,写在php脚本标签之外的是HTML代
-->
<?php
echo "test";
?>
</body>
</html>
运行结果如下图1.4:
短标签
PHP 也允许使用短标记 <? 和 ?>,但不鼓励使用。只有通过把php.ini 中的 shortopentag设置为ON才能使用短标记。
<? //开始标签
echo "hello" ; //PHP代码
?> //结束标签
运行结果如下图1.5:
在HTML中嵌套php短标签:<h1><?="hello world"?></h1>
短标签中,=直接写在开始标签的问好后可以有输出的功能如下图1.6
<!DOCTYPE HTML>
<html>
<head>
<title>php短标签嵌入html文件里面</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<?="test"?>等同于<? echo "test";?>
</body>
</html>
总结:当在HTML文件里面嵌入PHP代码的时候需要注意如下三步
每条语句后面都要跟个分号 ; (英文输入法下的)
图1.7说明:第二行没有写;所以报了语法错误丢了符号,所以分号是必不可少的。但是有的时候最后一行的分号不写也不会报错如图1.8这是因为本身?>这个符号也有结束的意思
图1.8
虽然PHP中大部分内容不区分大小写(变量),但是建议你编写代码时注意大小写。LINUX下区分大小写,所以避免换系统之后更改大小写如图1.9
图1.9说明:大部分内容不区分大小写如关键字echo或者php自带的函数但是变量是区分大小写的如给$a赋值了,$A就没有值输出,但是$a有值输出。
PHP页面的后缀虽然可以更改(php3,phps,..),但是尽量全部使用.php后缀如图1.10
图1.10说明:test.php3照样可以正常执行当然这也和
AddType application/x-httpd-php .php3
这句配置有关否则是不支持后缀为.php3的文件的。
注释
所谓注释就是在页面中不会执行语句或代码块。但是和html里面的注释有区别的地方是在于html的注释源代码能看到但是php的注释内容源码里面完全看不到。下面我们我们就来看看php的三种注释方法:
1. 以`//`开始的单行注释符
2. 以`#`开始的单行注释符
3. 以`/*`开始,`*/`为结束的多行注释符
详见如下图1.11:
什么是变量
在数学里面有如下公式:
x=5
y=6
z=x+y
在代数中我们使用字母(比如 x)来保存值(比如 5)x=5
。
在 PHP 中,像这三个字母被称为变量。 根据这个也可以明白。变量相当于存储数据的容器,那么既然是容器里面的东西自然就可以变化。
总结:程序能够变化的量就是变量。
PHP 变量规则
变量以$
符号开头,其后是变量的名称如下:
$a = 10;
变量名称必须以字母或下划线开头如下:
$a = 10;
$_a = 10;
变量名称不能以数字开头。
详见如下图1.12:以数字为开头就报不能以数字为开头的错误了:
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
详见如下图1.13:以非(A-z、0-9 以及 _)范围以外命名就报错了:
变量名称对大小写敏感
详见如下图1.14:$a 与 $A 是两个不同的变量,分别输出的值是10和11:
变量名尽量有意义,有意义体现在取名用对应的英文单词;
我们想取个用户名的变量,对应的英文是username,但是取名的风格又有两种方式如下:
//驼峰法:单词的第一个字母大写。
$UserName='lily';
//下划线连接法:单词和单词之前用下划线‘_’连接
$user_name='lily';
PHP中的变量可以不定义直接使用(弱类型语言)
详见如下图1.15:$a没有定义会报出一个通知,但是程序正常执行还是可以输出1,一般php配置的时候不会开启通知的。通知是通过php.ini里面的errorreporting设为: EALL & ~E_NOTICE
就不会显示通知了:
PHP变量的数据类型是根据变量值数据的改变而改变(弱类型的语言)
详见如下图1.16:$a=1的时候打印出来的时候看的出来是int型,$a='a'之后再打印变成了字符串型:
程序输出语句
总结:因此想要有任何输出就需要用echo
、var_dump
和 print
等输出相关的语句或函数:
echo
普通输出语句比print
要快 输出字符串数据用的最多多,可以输出多个字符串。
如下图1.18:
print
只能输出一个字符串,并始终返回 1 因为print其实是一个函数所以有返回值,所以运行速度要比echo慢
如下图1.19:输出一个值正常
var_dump()
输出数据类型又输出数据值,还可以输出数据长度 如上图1.16出现的打印出了变量的值以及类型。当然通常var_dump在实际应用中多是用来查看数据类型的,以及字符个数。可以用来调试的时候使用。
print_r()
: 专门输出数组的。到数组章节再详细讲解。
变量的赋值
变量之间的赋值:将一个变量值赋值另一个变量。
按数值赋值:将一个变量制作一个副本赋值给另外一个变量(传递的只是变量的数据)当其中一个变量发生改变的时候,另一个不变
$a=1;//把1赋值给$a。
$b=$a;//把$a的值赋值给$b 按数值赋值
$a=2;//把2赋值给$a
echo $b;//输出目前$b的结果
运行结果是:1
说明:$a重新赋值前,首先生成了一个副本赋值给了$b,所以$a重新赋值之后不会影响$b的值输出的仍是一开始赋值的1。
按地址赋值(按引用赋值):将一个变量的地址(内存地址)赋值给另外一个变量。如果其中一个改变 另一个也被改变。
$a=1;//把1赋值给$a
$b=&$a;//把$a的值赋值给$b 按地址赋值和按数值传值格式上的区别只在于多了一个&符号
$a=2;//把2赋值给$a
echo $b;//输出目前$b的结果
运行结果是:2
说明:$a重新赋值前把内存地址给了$b所以$a重新赋值之后会影响$b的值输出的是后面$a改变后的赋值的2。
变量的变量
变量的变量:以某个变量的变量值作为另一个变量的变量名。请看如下:
$a="c"; $c=1000; echo $$a;//变量的变量
运行结果是:1000