php代码运行,必须在Apache环境下才可以解析
需要安装 phpstudy集成环境,把代码拷贝到
www目录下
地址栏输入localhost 可以直接访问到 www目录,才可以正常解析
php支持与html混排,混排的原则,php的代码写到php标签对里,不是php的代码正常写就ok
<?php if (false){ ?>
<strong>我是真的</strong>
<?php }else{?>
<h1>我是假的</h1>
<?php }?>
php语句结束后必须加分号 ‘;’。
纯php文件我们只要
php中如何声明一个变量,必须以’$’开头
$a = 123;
echo $a;
var a = 234;
alert(a);
定义常亮 : define(‘常量名’,’常量值’);
define('APPPATH','localhost');
echo APPPATH;//localgost
isset(‘变量名’);检测变量是否存在
$a = 123;
var_dump(isset($a));//bool(true)//bool(true)
unset 删除一个变量
$b = 2222;
unset($b);
var_dump(isset($b));//bool(false)
常量
define('APP','localhost');
echo APP;
var_dump(defined('APP'));//localhostbool(true)
常量和变量的不同
1.常量前面没有美元符号($);
2.常量只能用define()函数定义,而不能通过赋值语句;
3.常量一旦定义就不能被重新定义或者取消定义;
4.常量的值只能是标量;(标量:字符串、数字、布尔值,不能是数组对象)
5.常量可以不用理会变量范围的规则而在任何地方定义和访问;
PHP数据类型
当转换为 boolean 时,以下值被认为是FALSE:
1.布尔值 FALSE;
2.整型值0(零);
3.浮点型值0.0(零);
4.空白字符串;
5.字符串”0”;
6.没有成员变量的数组;
7.没有单元的对象(仅适用于 PHP4);
8.特殊类型 NULL (包括尚未设定的变量);
所有其他值都被认为是 TRUE。
整型和浮点型
整形
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(-或者+)
浮点型
浮点数简单理解为带小数点的数值类型。如:$a = 1.234
字符串
在PHP中,字符和字节一样,也就是说,一共有256中不同字符的可能性。这也暗示PHP对Unicode没有本地支持
eg:$str = '伟大祖国'
字符串
$str = '我是字符串';
$str2 = "我是字符串1";
var_dump($str);
var_dump($str2);
在php中 单引号定义的字符串和双引号定义的字符串是不同的。区别在于双引号定义的字符串可以解析变量,单引号定义的字符串不能解析变量
$a = 10;
$str3 = "我今年{$a}岁";
echo '<br>';
echo $str3;//我今年10岁
$str4 = '我今年{$a}岁';
echo '<br>';
echo $str4;//我今年{$a}岁
NULL
NUll数据类型只有一个值NULL。
1.变量未被赋予任何值;
2.变量被赋值为NULL;
3.被unset()函数处理后的变量;
eg:
a;//变量
a未被赋予任何变量,值为NULL
b=NULL;//变量
b被赋值为NULL
c=10;unset(
c); //使用unset()函数处理后,$c为NULL
取得和判断数据类型的函数
getType()
获取变量的类型
is_bool
(检测是否为布尔型)
is_int
(检测是否为整型)
is_float
(检测是否为浮点型)
is_string
(检测是否为字符串)
is_null
(检测是否为NULL)
类型转换
自动转换
PHP类型根据值,自动转换
强制转换
settype($var,"type")
intval() //转换成整型
floatval() //转换成浮点型
strval() //转换成字符串
PHP运算符
流程控制
$a+$b 加法 $a和$b的和
$a-$b 减法 $a和$b的差
$a*$b 乘法 $a和$b的积
$a/$b 除法 $a除以$b的商
$a%$b 取模 $a除以$b后的余数
递增递减运算符
++$a 前加 $a的值先加一,然后进行操作
$a++ 后加 $a的值先进行操作,后加一
--$a 前减 $a的值先减一,然后进行操作
$a-- 后减 $a的值先进行操作,后减一
比较运算符
$a==$b 等于 TRUE,如果$a等于$b
$a===$b 全等于 TRUE,如果$a等于$b,并且类型也相同
$a!=$b 不等 TRUE,如果$a不等于$b
$a<>$b 不等 TRUE,如果$a不等于$b
$a!==$b 非全等 TRUE,如果$a不等于$b,或者类型不同
$a<$b 小于 TRUE,如果$a严格小于$b
$a>$b 大于 TRUE,如果$a严格大于$b
$a<=$b 小于等于 TRue,如果$a小于或者等于$b
$a>=$b 大于等于 TRue,如果$a大于或者等于$b
三元表达式
$变量=(表达式)? 值1:值2;
当表达式的返回值为true时,$变量被赋值1,否则被赋予值2
逻辑运算符
$a and $b 逻辑与 TRUE,如果$a与$b都为TRUE
$a or $b 逻辑或 TRUE,如果$a与$b任一为TRue
!$a 逻辑非 TRUE,如果$a不为TRUE
$a && $b 逻辑与 TRUE,如果$a与$b都为TRUE
$a || $b 逻辑或 TRUE,如果$a或$b任一为TRUE
注:其中and与&&、or与||是同一逻辑运算符的两种写法
其他运算符
字符串运算符
有两个字符串运算符。第一个是连接运算符("."),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(".="),它将右边参数附加到左边的参数后。
赋值运算符
基本的赋值运算符是"="。你一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边运算符
自定义函数
函数的概念:
函数(function)是⼀一段完成指定任务的已命名代码,函数可以遵照给
它的⼀一组值或参数完成任务,并且可能返回⼀一个值。使⽤用函数可以节省
编译时间,因为⽆无论调⽤用多少次,函数只需被编译⼀一次。
函数的特性
1.控制程序设计的复杂性
2.提⾼高软件的可靠性
3.提⾼高软件的开发效率
4.提⾼高软件的可维护性
5.提⾼高程序的重⽤用性
自定义函数语法格式
案例
function 函数名称(参数1,参数2 …){
程序内容叙述;
return 返回值; //如需函数有返回值时使⽤用;
}
function hd($num1,$num2){
return $num1 + $num2;
}
函数的使⽤用:、
函数名称(参数1,参数2 …);
$返回值变量量 = 函数名称(参数1,参数2);
$result = hd(100,100);
echo $result;
函数
函数名称定义:
它是函数在程序代码中的识别名称,函数名可以是以字⺟母或下划线开头
后跟零个或多个字⺟母、下划线和数字的任何字符串串。函数名不不区分⼤大⼩小
写。命名函数时不不可使⽤用已声明的函数,或PHP内建的函数名称。
函数参数
所谓的参数就是⽤用来把数值由函数外部传⼊入函数体中,并⽤用来加以运算
处理理。参数之间⽤用“ ,”号隔开。当函数不不需要任何数值传⼊入时,可以省
略略参数。
函数返回值
返回值:
当调⽤用函数时需要它返回⼀一些数值,那么就要函数体中⽤用return语句句实现。格式如下:
return 返回值; //返回值也可以是⼀一个表达式
如果函数中没有使⽤用return返回值时则函数返回值为null
function hd($var){
if($var == ‘houdun’){
return true;
}
}
$hd = ‘houdunwang’;
$result = hd($hd);
var_dump($result); //返回值是null
函数检测
函数名称定义:
function_exists() 函数的作⽤用是检查类的⽅方法是否存在
检测hd这个函数是否定义:
var_dump(function_exists(‘hd’));
function hd(){
echo ‘hd’;
}
$bool = function_exists('hd');
var_dump($bool);
变量的范围
变量的能见度
所谓变量量的能⻅见度,意指变量量在程序中的可作⽤用范围。当⼀一个变量量执
⾏行行赋值动作后,会随着声明局部的差异,⽽而有不不同的作⽤用范围。⼤大致
上来说变量量会依据声明的局部分为下列列两种:局部变量量和全局变量量
局部变量
在函数之中声明的变量量就是局部变量量,并且该变量量只有在函数范围之中才
能加以使⽤用。如果其它程序局部需要调⽤用使⽤用该变量量值时,必须透过
「return」指令,来将其传回⾄至主程序区块以作后续处理理。
<?php
$hd=0;
function p(){
$hd = 3; //定义局部变量量
echo "在函数中显示局部变量量\$hd值: $hd </br>";
}
p();
echo "在函数外显示变量量\$hd值: $hd <br>";
全局变量
在函数范围之外声明的变量量为全局变量量,在函数⽆无法直接使⽤用全局变量量,函数
要使⽤用全局变量量,必须要利利⽤用global引⼊入。
<?php
$hd=“热血少年”;
function p() {
global $hd; //利利⽤用 global 引⼊入全局变量量
echo $hd;
}
p();
?>
可以使⽤用全局数组$GLOBALS调⽤用全局变量量。
echo $GLOBALS[“hd”];
静态变量量
PHP⽀支持声明函数变量量为静态的(static)。⼀一个静态变量量在所有对该函数的
调⽤用之间共享,并且仅在脚本的执⾏行行期间函数第⼀一次被调⽤用时被初始化。
要声明函数变量量为静态的⽤用关键字static。通常,静态变量量的第⼀一次使⽤用时
赋予⼀一个初始值。
function hd(){
static $a = 0;
$a++;
echo $aa;
}
hd();hd();hd(); 结果是123
参数的传递
按值传递参数
• ⽗父程序直接传递指定的值或是变量量给函数使⽤用。由于所传递的值或变
量量,与函数⾥里里的数值分别储存于不不同的内存区块,所以当函数对所导
⼊入的数值作了了任何变动时,并不不会对⽗父程序造成直接影响。
function hd($hd){
$hd = 3;
}
$var = 1;
hd($var);
echo $var; //结果还是1
变量函数
变量函数
PHP ⽀支持变量量函数的概念。这意味着如果⼀一个变量量名后有圆括号,
PHP 将寻找与变量量的值同名的函数,并且将尝试执⾏行行它。除了了别的
事情以外,这个可以被⽤用于实现回调函数,函数表等等。
• 变量量函数不不能⽤用于语⾔言结构,例例如 echo(),print(),unset(),
isset(),empty(),include(),require() 以及类似的语句句。需要使⽤用
⾃自⼰己的外壳函数来将这些结构⽤用作变量量函数。
函数调用
递归调用
• 所谓的函数递归调⽤用,就是函数可以在其声明的执⾏行行叙述之中调⽤用执
⾏行行⾃自⼰己。
• 通常在此类型的函数之中会附加⼀一个条件判断叙述,以判断是否需要
执⾏行行递归调⽤用,并且在特定条件下终⽌止函数的递归调⽤用动作,把⽬目前
流程的主控权交回上⼀一层函数执⾏行行。因此当某个执⾏行行递归调⽤用的函数,
没有附加条件判断叙述时可能会造成⽆无限循环的错误情形
• 函数递归调⽤用最⼤大的好处在于可以精简程序中繁杂重复调⽤用程序,并
且能以这种特性来执⾏行行⼀一些较为复杂的运算动作。、
代码重用
代码重用include和require
include与require
将⽂文件导⼊入,就像把该⽂文件粘贴到使⽤用函数的地⽅方。
include( )与require ( )区别在于在脚本执⾏行行时包含,当处理理失败时,
include( )产⽣生⼀一个警告⽽而require()则导致⼀一个致命错误。
代码重用
include_once( )和require_once( )函数
与include( )语句句及require( )类似,区别是如果该⽂文件中的代码已经被包括了了,则不不会再次包括。
这两个函数⽤用于在脚本执⾏行行期间同⼀一个⽂文件有可能被包括超过⼀一次的情况下,以避免函数重定义,变量量重新赋值等问题。
日期与时间
PHP时区
UTC
协调世界时,⼜又称世界统⼀一时间,世界标准时间,国际协调时间北京时间
GMT是中央时区,北北京在东8区,相差8个⼩小时,所以北北京时间=GMT时间+⼋⼩小时。
PHP中设置时区
东⼋八区,北北京时间设置 肯定⽤用PRC了了,因为简单
• PRC Asia/chongqing Asia/shanghai Asia/urumqi
PHP.ini配置 不不推荐改配置项,因为有些服务器器是改不不了了配置项的
• 更更改date.timezone = PRC
脚本中修改 推荐,适⽤用于不不能改的服务器器
• date_default_timezone_get()取得当前使⽤用时区
• date_default_timezone_set()设定当前使⽤用时区
时间处理理函数
date
• string date ( string $format [, int $timestamp ] )
格式化⼀一个本地时间/⽇日期
echo date(‘Y-m-d H:i:s’) //当前时间戳,但是别忘了了设置时区
• int time ( void )
返回当前的 Unix 时间戳
echo time(); //返回当前的时间戳,是1970-1-1到现在的秒数
microtime
• mixed microtime ([ bool $get_as_float ] )
返回当前 Unix 时间戳和微秒数
• 如果给出了了 get_as_float 值为TRUE,将返回⼀一个浮点数
echo microtime(); //返回两段数字
echo microtime(true); //返回浮点数
strtotime
• int strtotime ( string $time)
将任何英⽂文⽂文本的⽇日期时间描述解析为 Unix 时间戳
$time = strtotime(‘2000-1-1’);
echo $time; //时间戳
echo date(‘Y-m-d’,$time);//也可以格式化
getdate
• array getdate ([ int $timestamp ] )
取得⽇日期/时间信息
$arr = getdate();print_r($arr);
Array
(
[seconds] => 30 //秒
[minutes] => 29 //分
[hours] => 15 //时
[mday] => 30 //⼀一个⽉月的第⼏几天
[wday] => 1 //⼀一周的第⼏几天
[mon] => 11 //⽉月
[year] => 2015 //年年
[yday] => 333 //⼀一天的第⼏几天
[weekday] => Monday //英语周⼀一
[month] => November //英语11⽉月
[0] => 1448893770 //时间戳
)