static :静态变量:只有未定义时才会声明,否则值会累加,获取最近的值操作;
<?php
function set($sum){
$x=10;
$x+=$sum;
return $x;
}
echo set(20),'<br/>';//30
echo set(10),'<br/>';//20 每次$x重新声明;生命周期是函数调用结束;
function setA($sum){
static $x=10;//静态变量;未定义时才会声明;否则值会累加,获取最近的值操作;
$x+=$sum;
return $x;
}
echo setA(20),'<br/>';//30
echo setA(10),'<br/>';//40
function setArr($a){
static $newArr=array();
$newArr[]=$a;
return $newArr;
}
print_r(setArr(5));//Array ( [0] => 5 )
print_r(setArr(4));// Array ( [0] => 5 [1] => 4 )
?>
递归函数
进入函数,最后有明确值才会进行计算;性能比较低
<?php
//计算任意数据的阶乘;先进,最后有明确值才会进行计算;性能比较低
function product($x){
if($x==1)return 1;//必须return 才有返回值;
return $x*product($x-1);//必须eturn 才有返回值;
}
echo product(5);
?>
常量
内置常量
echo PHP_VERSION;//获取PHP版本号;
echo DIR;//获取当前文件夹路径;定位到文件夹
echo FILE;//获取当前文件路径;定位到具体文件
echo LINE;//获取当前行;
自定义常量,定义后不能更改;
define('常量名',值);
defined('常量名')//判断常量是否定义;
<?php
define('_NAME','png');
print_r(defined('_NAME'));//1,没有的话为空;
echo _NAME;//png
?>
required include
//pow(2,5);等于2的5次方;
//require,require_once,include,include_once
带有once的会检测指定的文件是否已被包含过,没有则包含,有则不再包含;
require ;require_once
include;include_once
ini_get;ini_set
trim();ltrim();rtrim()
strrpos();strripos()
<?php
//require,与include区别是报错不同
//当没有找到指定的路径时,将会在php.ini中include_path设置的选项中查找
//如果还未找require 则报fatal error ;include报警告;
$path=ini_get('include_path');//获取php.ini设置的选项值;
//从右至左查找指定的字符串;strripos;忽略大小写,第三个参数是从倒数第 5 个位置开始查找;找到就返回相应的索引,没有找到返回false
echo strrpos('abad',';',-2);
//rtrim,ltrim,trim,子字符串省略时,删除字符串的空字符串;
echo rtrim('#avbsd#','#');//删除字符串右边的子字符串;
echo ltrim('#avbsd#','#');//删除字符串左边的子字符串;
echo trim('#avbsd#','#');//删除字符串两边的子字符串;
echo ini_set('include_path','d:/contains');//设置php.ini设置的选项值;只在当前脚本有效;
echo '<br/>';
//添加多个路径,用';'隔开;
$path=rtrim($path,';').';';
echo ini_set('include_path',$path.'d:/contains');
$path=ini_get('include_path');
//require致命错误;include警告;
//有once,包含过,就不在执行一次;
?>
导入html文件
<?php
include 'static/header.html';
?>
<div class="main">
body-start
<?php
include 'static/body.html';
?>
body-end
</div>
<?
include 'static/footer.html';
?>