开始使用php
<html>
<head>
<title>HelloWorld</title>
</head>
<body>
<p>第一个PHP程序</p>
<p>
<?php
echo 'Hello World!';
?>
</p>
<p>时间:<?php echo date("Y-m-d H:i:s");?> </p>
</body>
</html>
四种php标记:
1.<?php echo 'hello';?>//系统自带
2.<? echo 'hello'; ?> //短标记.需要配置文件
3.<script language="php"> echo 'hello';</script>//系统自带
4.<% echo 'hello'; %> //asp风格.需要配置文件
PHP注释
1.多行注释
/*
This script is hello world
Author: david
Date: 2010.04.01
*/
2.单行注释
echo 'hello'; //print hello
echo 'hello'; # print hello
3.文档注释
/**
* 获取用户数据
* @param int uid
* @author david
*/
变量
1.变量声明
变量以美元符 $ 开头,然后是变量名;
变量名由字母或下划线开头,由字母,下划线,数字组成;
变量名区分大小写;
php 是弱类型的语言,不需要事先声明变量的数据类型;
php可以不用显示的声明变量就直接使用,不过好的编码习惯:所有的变量在使用前应该进行
声明;
2.变量赋值
(1). 值赋值:就是将赋值表达式的值复制到变量;
(2). 引用赋值:php4引入了引用赋值功能,创建的变量与另一个变量引用的内容相同。
例:
$val_1 = 'hello';
$val_2 = &$val_1; //把$val_1的内存空间地址赋值给$val_2,是同一个变量
$val_2 = 'goodbye';
$var_1 = 'goodbye';
3.变量的变量
$val_1 = 'hello';
$$val_1 = 'world';
echo $hello;
echo $val_1;
echo ${$val_1};
2.PHP的超全局变量
php提供了很多有用的预定义变量,用于提供大量与环境有关的信息。
(1). $_SERVER 服务器变量
该全局变量包含着服务器和客户端配置及当前请求环境的有关信息
$_SERVER['SERVER_NAME']; : 当前运行脚本所在的服务器的主机名
$_SERVER['HTTP_REFERER']链接到当前页面的前一页面的 URL 地址
$_SERVER['REMOTE_ADDR']正在浏览当前页面用户的 IP 地址
$_SERVER['REQUEST_URI']访问此页面所需的 URI
$_SERVER['HTTP_USER_AGENT']当前请求的 User-Agent: 头信息的内容。
(2). $_GET
该变量包含使用 GET 方法传递的参数的有关信息;
例:
url: http://localhost/test.php?id=100&page=2
$id = $_GET['id'];
$page = $_GET['page'];
(3). $_POST
该变量包含使用 POST 方法传递的参数的有关信息;
例:html:
<form name="reg" action="test.php" method="post">
用户名:<input type="text" name="username" />
密码: <input type="password” name="passwd"/>
<input type="submit" value="提交" />
</form>
php:
$username = $_POST[‘username’];
$passwd = $_POST[‘passwd’];
//_GET与_POST的区别 //1.GET 方法
//GET 方法提交数据不安全,数据置于请求行,客户端地址栏可见;
//GET 方法提交的数据有大小限制
//2.POST 方法
//POST 方法提交数据安全,数据置于消息主体内,客户端不可见
//POST 方法提交的数据大小没有限制
(4). $_REQUEST
该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但不要用这个超级全局变量,因为它不安全而且速度比较慢;
(5). $_COOKIE cookie变量数组
(6). $_SESSION 会话变量数组
(7). $_FILES 与上传文件有关的变量数组
(8). $_ENV 环境变量数组
(9). $GLOBALS 所有全局变量数组
常量
1.常量的定义
常量是指在程序执行中无法修改的值。如 PI (3.1415926);
在脚本执行期间该值不能改变;
常量对大小写敏感,通常常量名总是大写;
常量是全局的,可以在脚本的任何地方引用;
常量分为内置常量和自定义常量;
常量使用define()函数定义;
2.内置常量
PHP_OS PHP所在的操作系统的名字
PHP_VERSION 当前 PHP 的版本
3.魔术常量
__LINE__ 文件中的当前行号;
__FILE__ 文件的完整路径和文件名;
__FUNCTION__ 函数名称;
__CLASS__ 类的名称;
__METHOD__ 类的方法名;
数据类型
一、标量数据类型
1.字符串 (string)
字符串有三种定义方式:单引号,双引号,定界符(heredoc);
单引号字符串中出现的变量不会被变量的值替代;
双引号字符串中最重要的一点是其中的变量会被变量值替代;
如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想明确的指定名字的结束,用花括号把变量名括起来。
例:
$test = 'wengdo';
$demo = "234";
echo '$test';//$test 单引号不解析变量
echo "{$test}abc";//wengdo 双引号解析变量
字符串定界的方法使用定界符语法 "<<<"
例:
$str = <<<EOD
Example of string
using heredoc syntax.
EOD;
echo $str;
在PHP定界符中的任何特殊字符 都不需要转义
PHP定界符中的PHP变量会被正常的用其值来替换
使用定界符要注意:
结束标识符所在的行不能包含任何其它字符,这意味着该标识符不能被缩进,在分号之前
之后都不能有任何空格或制表符;
转义字符
换行
回车 ( WINDOW
) (linux
) (Mac OS
)
水平制表符 (按键盘 tab 产生的效果)
\ 反斜线
$ 美元符(表示变量的开始)
" 双引号
2.整型(integer)
$age = 25;
3.浮点型(float, double)
$num = 5.39;
4.布尔型(bool)
$bo = TRUE;
$bo = FALSE;
二、复合数据类型
1.数组
$week = array('星期一','星期二','星期三');
2.对象
$db = new db;
三、特殊数据类型
1.资源
$fh = fopen("test.txt","r");
2.null
null 无,表示没有值,null不表示空格,也不表示0;
以下情况,则认为是null:
没有设置为任何预定义的变量;
明确的赋值为null;
使用函数unset()清除;
类型自动转换
因为php对于类型定义非常的松散,所以有时会根据引用变量的环境,将变量自动转换为
最适合的类型;
例1: $num = 5;
$str = “15”;
echo $num + $str;
例2: $str = “100 hello”;
$num = 200;
echo $num + $str;
例3:
$str = '1.2';
if($str){ //if 判断为 true
echo 'hello world';
}
与类型相关的函数
1.gettype() 返回变量的类型
共有8个可能的值 string、integer、float、boolean、array、object、null、unknow
例: $str = ‘hello’;
echo gettype($str);
2.is_type() 查看变量是否属于某个类型,是返回 TRUE ,否返回 FALSE;
$arr = array(1);
echo is_array($arr);
$num = 5;
echo is_int($num);
3.var_dump()
var_dump()函数用来得到变量的类型和值的详细信息
/*
echo 字符串 数值
print_r 数组 对象 字符串 数值
var_dump 数据类型
*/
例:
$str = ‘hello’;
var_dump($str);
$arr = array(‘A’, ‘B’, ‘C’);
var_dump($arr);
error_reporting(E_ALL);
// E_ALL错误提示信息全开
// 0 错误提示信息全关