一、PHP标记
<?php echo "hello php"; ?>
<? echo "hello php"; ?>
<script language="php"> echo "hello php"; </script>
<% echo "hello php"; %>
echo 可以输出任何内容到页面上。
注意:1、3可直接使用,但是2,4需要修改php.ini的配置文件才能使用,只做了解。
二、变量
1、变量命名规则
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
2、变量赋值
- 值赋值:直接给变量赋值。
$name = "xiaoming";
$age = 18;
$num = 10 + "20"; // $num输出结果等于30
$a = "gebi"."laowang" // $a 输出结果是gebilaowang
注意:在PHP中 + 只表示数字相加;• 才表示字符串拼接
打印10个小明
for ($i=0; $i < 10; $i++) {
// echo "小明".($i + 1)."号<br/>";
// echo "小明 $i 号<br/>";
// echo "小明{$i}号<br/>";
echo "小明".($i + 1)."号<hr/>";
}
// PHP中,双引号带有变量解析功能
// 单引号为纯字符串
// 双引号解析变量的时候,可以使用{}括起变量名
注意:PHP中,双引号带有变量解析功能,单引号为纯字符串。
双引号解析变量的时候,可以使用{}括起变量名。
- 引用赋值:将一个变量的地址赋给另一个变量,此处需要在变量名前面加上&符号。
// &取址运算符
$myAge = 18;
$yourAge = &$myAge;
// 取出$myAge的地址,赋给$yourAge,修改$yourAge会影响$myAge
$yourAge = 19;
// 此时输出的结果都是19
echo $myAge."<br/>";
echo $yourAge."<br/>";
// 函数内部修改函数外部变量的值
// 如果需要函数内修改函数外部变量,参数前面需要添加&符 号,进行取址操作。
function add(&$a){
$a *= 10;
}
$b = 10;
add($b);
echo $b."<br/>"; //输出结果100
3、变量的变量
// 变量的变量
$one = "hello";
$$one = "world";
echo $one."".$hello; //输出结果helloworld
4、超全局变量
php提供了很多有用的预定的变量,用于提供大量与环境有关的信息。
(1)、$_SERVER服务器变量,该全局变量包含着服务器和客户端配置及当前请求环境的有关信息。
$_SERVER['SERVER_NAME']:当前运行脚本所在的服务器的主机名
$_SERVER['REMOTE_ADDR']:客户端IP地址
$_SERVER['REQUEST_URI']:URI的路径部分
$_SERVER['HTTP_USER_AGENT']:操作系统和浏览器的相关信息
// 当前运行脚本所在的服务器的主机名
echo $_SERVER['SERVER_NAME']."<br/>";
// 客户端IP地址
echo $_SERVER['REMOTE_ADDR']."<br/>";
// URI的路径部分
echo $_SERVER['REQUEST_URI']."<br/>";
// 操作系统和浏览器的相关信息
echo $_SERVER['HTTP_USER_AGENT']."<br/>";
(2)、$_GET该变量包含使用GET方法传递的参数的有关信息
(3)、$_POST该变量包含使用POST方法传递的参数的有关信息
html代码
<form class="" action="login.php" method="post">
<label for="userName">请输入账号</label>
<input id="userName" type="text" name="userName" value="">
<br/>
<label for="pwd">密码</label>
<input type="password" name="pwd" value="">
<br/>
<label for="phone">手机号</label>
<input type="num" name="phone" value="">
<br/>
<input type="submit">
</form>
注意:html代码必须在服务器环境下加载,提交表单时才有效果。
php代码
<?php
echo "用户名: " . $_POST["userName"] . " 密码: " . $_POST["pwd"]." 手机号: " . $_POST["phone"];
?>
(4)、$_REQUEST该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但不要用这个超全局变量,因为它不安全而且速度比较慢。
(5)、$_COOKIE cookie变量数组
(6)、$_SESSION 会话变量数组
(7)、$_FILES 与上传文件有关的变量数组
(8)、$_ENV 环境变量数组
(9)、$GLOBALS 所有全局变量数组
三、常量
1、常量的定义
常量是指在程序执行中无法修改的值。如PI(3.1415926);
在脚本执行期间该值不能改变;
常量对大小写敏感,通常常量名总是大写;
常量是全局的,可以在脚本的任何地方引用;
常量使用define()函数;
// 常量
define("PI", 3.14);
echo PI;
2、内置常量
- PHP_OS php所在操作系统的名称
- PHP_VERSION 当前php的版本号
echo PHP_OS;
echo "</br>";
echo PHP_VERSION;
3、魔术常量
______LINE__ 文件中的当前行号;
______FILE__ 文件的完整路径和文件名;
______FUNCTION__ 函数名称;
______CLASS__ 类的名称;
______METHOD__ 类的方法名;
注意:此处下划线的前后下划线为2条。
// 魔术常量
echo __LINE__."<br>";
echo __FILE__."<br>";
function test () {
echo __FUNCTION__."<br>";
};
test();
四、数据类型
1、字符串
字符串有三种定义方式:单引号,双引号,定界符(heredoc);
- 单引号字符串中出现的变量不会被变量的值替代;
- 双引号字符串中最重要的一点是其中的变量会被变量值替代;
如果遇到美元符号($),解析器会尽可能多的取得后面的字符以组成一个合法的变量名,如果想明确的指定名字的结束,用大括号将变量名括起来。
$age = 18;
echo "xiaoming{$age}"; // 输出结果xiaoming18
- 字符串定界的方法使用定界符语法“<<<”。
因为PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。
// 定界符
$name2 = 'kitty';
echo <<<AAA
<table height="20">
<tr>
<td>
{$name2}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td>
</tr>
</table>
AAA;
- PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
- 在PHP定界符中的任何特殊字符都不需要转义;
- PHP定界符中的PHP变量会被正常的用其值来替换。
- 在语法上尤其需要注意<<<之后的字符是自己定义的,随便什么都是可以的(比如AAA都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,并且结尾一定要另起一行,并且改行除了AAA这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话就会报错。
- 如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出一样写就行了,最好用大括号将其包裹起来。
2、字符串转义
- \n 换行
- \r 回车
- \t 水平制表符(tab键)
- \\\(反斜杠)
- $ $(美元符)
- \” “(双引号)
3、整形(integer)
$age = 25;
4、浮点型(float, double)
$num = 5.23;
5、布尔型(boolean)
$bo = TRUE;
$bo = FALSE;
五、特殊数据类型
1、资源
$fh = fopen("test.txt","r");
2、null
null无,表示没有值,nul不表示空格,也不表示0;以下情况,则认为是null:
- 没有设置为任何预定义的变量;
- 明确的赋值为null;
- 使用函数unset()清除;
六、自动类型装换
因为php对于类型定义非常的松散,所以有时会根据引用变量的环境将变量自动转换为最合适的类型;
相加运算时会将字符串转换为数字
$num1 = "12";
$num2 = "13assd";
echo $num1 + $num2; // 25
判断语句中以下类型会被自动转换为布尔值
$abc = false; // false
$abc = 1; // true
$abc = -1; // true
$abc = 0; // false
$abc = null; // false
$abc = "haha"; // true
$abc = ""; // false
if ($abc) {
echo "hahhahahhah";
}
六、自动类型装换
1、gettype() 返回变量的类型,共有8个可能的值 string、integer、float、boolean、array、object、null、unknow。
echo "<hr/>";
$str = 245.245;
echo gettype($str);
2、is_type() 查看变量是属于某个类型,是返回TRUE,否则返回FALSE;
true 显示1,false显示无。
$age1 = array(134, 134, 45, 24);
echo is_string($age1);
如上代码执行效果为无,如果写is_array()则返回1。
3、var_dump() 获取变量的值和类型的详细信息
$age = 1245;
var_dump($age);
以上内容纯属个人理解,由于本人水平有限若有错漏之处,敬请指出斧正,小弟不胜感激。