一、php语法结构:
1、标准风格
<?php
echo "hello world";
?>
2、短风格:需要在php配置文件中 short_open_tag=on,重启php生效。
<?
echo "hello world";
?>
3、ASP风格:需要在php配置文件中 asp_tag=on,重启php生效。
<%
echo "hello world";
%>
4、长风格
<script language='php'>
echo "hello world";
</script>
二、php注释:
<?php
echo "hello world"; //这是单行注释
/*
这是
多行注释
*/
?>
三、php变量:
声明变量:$变量 = 值
<?php
$name = 'php'; //php变量名区分大小写
echo $name;
?>
可变变量和取地址符:
<?php
$a = 10;
$b = $a;
echo $a,$b,'<br />'; //输出结果都为10
$a = 15;
echo $a,$b,'<br />'; //输出结果 a=15,b=10
//变量a,b属于不同内存地址,这就是可变变量
$c = 10;
$d = &$c; //&变量名 这就是取地址符
echo $c,$d,'<br />'; //输出结果都为10
$c = 15;
echo $c,$d,'<br />'; //输出结果都为15
//变量c,d都指向同一内存地址,故修改其中一个变量值,其他变量值也被修改。
?>
四、php数据类型:
- 整型int
- 浮点型float和double
- 布尔类型boolean
- 字符串类型String
- 数组Array
- 对象Object
- 资源resource
- 空null
<?php $a = 10; var_dump($a); //int(10) $b = 3.14; var_dump($b);//float(3.14) $c = True; var_dump($c); //bool(true) $d = 'hello'; var_dump($d); //string(5) "hello" $shuzhu = array('a','b'); var_dump($shuzhu); //array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } unset($a) //注销变量,使其值为null ?>
五、单引号和双引号区别:
双引号需要解析变量,单引号不解析变量。故单引号解析效率高,推荐使用单引号。
<?php
$name = 'php';
echo '$name'; //结果为:$name
echo "$name"; //结果为:php
?>
双引号解析所有转义符,单引号只能解析\'和\\两种
<?php
$name = 'php\nhello';
echo "$name"; //结果为:php\nhello
$name = "php\nhello";
echo "$name"; //结果为:php hello
?>
六、数据类型转换:
其他类型隐式转换为数值型
<?php
$a = True + 1;
echo $a,'<br />'; //结果为:2 True转换为数值为1
$b = Null + 1;
echo $b,'<br />'; //结果为:1 Null转换为数值为0
$c = "abc" + 1;
echo $c,'<br />'; //结果为:1 字符串第一个字符不是数字转换为数值为0
$d = "123abc" + 1;
echo $d,'<br />'; //结果为:123 字符串转换为数值取前面为数字的字符串
$e = "1a2b3c" + 1;
echo $e,'<br />'; //结果为:2 一旦遇到非数字则停止往下取
?>
其他类型隐式转换为布尔型
<?php
num = 0; //数值0为False,非0为True
//空字符串或"0"为False
//null为False
//空数组为False
?>
强制类型转换:
1、临时转换:
<?php
$a = 123;
var_dump((int)$a); //int(123)
var_dump((string)$a); //string(3) "123"
var_dump((bool)$a); //bool(true)
var_dump((float)$a); //float(123)
var_dump((array)$a); //array(1) { [0]=> int(123) }
var_dump((object)$a); //object(stdClass)#1 (1) { ["scalar"]=> int(123) }
var_dump((unset)$a); //NULL
?>
2、永久转换:
<?php
$a = 123;
settype($a,'String');
var_dump($a);//string(3) "123"
echo gettype($a);//string
?>
3、检测变量类型 is_数据类型
<?php
$a = 123;
is_int($a);
is_string("php");
is_array($a);
is_null($a);
is_object($a);
is_readable($a);
?>
七、常量:
1、系统常量:
<?php
echo PHP_VERSION; //5.4.45
echo PHP_OS; //WINNT
echo M_PI; //3.1415926535898
?>
2、自定义常量
注意事项:
1、声明常量前面没有$符号。
2、声明常量尽量使用大写。
3、常量定义出来,不能改变也不能取消定义。
<?php
define('name','php'); //第一种定义方式,define()函数
echo name; //php
const name1 = 'php1'; //第二种定义方式:const 常量名
echo name1;
var_dump(defined('name')); //检测常量是否被定义,使用defined()函数检测,返回True和False
?>
3、魔术常量:
<?php
echo __LINE__; //获得当前行号 2
echo __FILE__; //获得文件的完整路径 D:\phpStudy\PHPTutorial\WWW\demo\index.php
echo __DIR__; // 返回文件所在的目录 D:\phpStudy\PHPTutorial\WWW\demo
?>
八、运算符:
1、算数运算符: + - * / % ++ --
2、字符串运算符:以.的形式连接2个变量
<?php
$a = 'aaa';
$b = 'bbb';
echo $a.$b; //aaabbb
echo $a.'ccc'; //aaaccc
?>
3、赋值运算符:+=、-=、*=、/=、.=等等
4、比较运算符:> < = >= <= == != ===
<?php
// 两个等于只判断值 三个等于还要判断类型
var_dump(5=='5'); //bool(true)
var_dump(5==='5'); //bool(false)
?>
5、逻辑运算符:&& (并且) ||(或者) !(非)
6、执行运算符:
<?php
echo `ipconfig`; //通过反引号实现外壳的代码
echo shell_exec('net user'); //通过此函数执行外壳代码
?>
7、错误抑制符:使警告不显示出
<?php
echo 3/0; //输出结果:Warning: Division by zero in D:\phpStudy\PHPTutorial\WWW\demo\index.php on line 2
echo @(3/0) //在错误代码前加入@符号,使其忽略错误。
?>
8、三元运算符:表达式?结果1:结果2
<?php
if (3>2){
echo "True";
}else{
echo "False";
}
echo 3>2?"True":"False"; //使用三元运算符简写为
?>