[php]php总结(1)
1、变量可以连续传递赋值
2、var_dump()打印变量信息
3、isset()与unset()
4、可变变量
$p = "temp";
$$p则表示$temp变量,即最右边的变量的值为下一个变量的值
5、变量支持引用
类似C语言可以利用&获取变量地址
6、变量的假值
0,null, 0.0, "", "0", array(),
7、单引号与双引号的区别
双引号中可以直接解析变量,单引号不可以
也能够解析大括号,单引号不可以
能够解析转义字符(单引号只能转义\和'),
$a = 100;
"the score is $a"输出为:the score is 100
"the score is {$a}"输出为:the score is 100
8、利用定界符声明字符串
$str = <<<EOF
heheheheeheheh
EOF;
相当于
$str = "heheheheeheheh";
EOF是自定义的
注意:开始标记必须是直接回车(空格都不能有)
结束标记后分号也直接回车
9、类型转换
setType(变量,类型字符串);
变量前加();
intval();floatval();strval();
10、常量
define(变量名字符串, 值);
constant()获取常量值
get_defined_constants();获取所有常量列表
11、php支持goto语句(与C相同)
12、函数默认参数
function demo($demo = "demo"){
}
13、可变参数函数
function demo(){
$arr = func_get_args();
$num = func_num_args();
}
14、变量函数
function add(){
}
$var = "add";
$var();
15、回调函数
回调函数:其接收的参数是函数,则这个函数就可成为回调函数
(1)利用变量函数来是实现的
//功能打印个位非0的数字
function remove($var, $func){
for($i=0; $i<$var; $i++){
if($func($i))
continue;
echo $i;
}
}
//此函数作为参数
function func($var){
if($var%10==0)
return true;
else
return false;
}
(2)当参数函数是类的静态方法或者是对象的方法,变量函数不能够支持
function remove($var, $func){
for($i=0; $i<$var; $i++){
if(call_user_func_array($func, array($i)))
continue;
echo $i;
}
}
class Filter{
function func($var){
if($var%10==0)
return true;
else
return false;
}
}
remove(100, array(new Filter(), "func"));
注意:此处调用remove函数是用数组来描述参数函数,即$func=array(new Filter(), "func")
call_user_func_array($func, array($i))是将后边数组中的元素按照顺序赋给前边的函数的形参
16、require和include的区别
(1)require在预处理时候执行,想当于将require文件中的用到的函数或内容拷贝到调用的地方
(2)require执行失败会出现致命错误,而include是出现警告
17、闭包函数
(1)函数内部有函数,父函数可以返回子函数,但子函数不能有return
(2)子函数可以调用父函数内部的变量,利用关键字use
(3)父函数的内部变量会保持激活状态不会被释放
function test(){
$a = 100;
$p = function () use(&$a){
echo $a++;
};
return $p;
}
$test = test();
$test();
$test();
$test();
多次调用$a的值是在不断增加的
随机推荐
- Spring 计划 7.0
Sprint回顾 让我们一次比一次做得更好. 1.回顾组织 主题:“我们怎样才能在下个sprint中做的更好?” 时间:设定为1小时. 参与者:整个团队. 场所:宿舍. 秘书:李新佳. 2. ...
- 个人作业-week2(代码复审)
一.代码复审check list 概要部分 代码符合需求和规格说明吗? 符合要求和规格说明,-s指令和-c指令都能实现需求.并且能够处理非法输入. 代码设计是否有周全的考虑? 程序的main函数中对各 ...
- 5G时代
电信语音承载在CDMA2G网络--所以2G基本没有网络 网络走fdd4g 如果5G时代来临,4g网络可能就会像3G一样的慢
- #Leetcode# 817. Linked List Components
https://leetcode.com/problems/linked-list-components/ We are given head, the head node of a linked l ...
- PHP面试经常被提到的问题
1. Include 与 require的区别,require和require_once的效率哪个高? PHP在遇到include时就解释一次,如果页面中出现10次include,php就解释10次, ...
- delphi locate函数的使用
loc1:= qry1.FieldbyName('SPBM').AsString; //商品编码 loc2:= qry1.FieldbyName('XH').AsString; ...
- [BJOI2017]树的难题 点分治 线段树
题面 [BJOI2017]树的难题 题解 考虑点分治. 对于每个点,将所有边按照颜色排序. 那么只需要考虑如何合并2条链. 有2种情况. 合并路径的接口处2条路径颜色不同 合并路径的接口处2条路径颜色 ...
- BZOJ 2732: [HNOI2012]射箭
2732: [HNOI2012]射箭 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2532 Solved: 849[Submit][Status] ...
- 【spoj SUBLEX】 Lexicographical Substring Search
http://www.spoj.com/problems/SUBLEX/ (题目链接) 题意 给出一个字符串,询问其中字典序第K小的子串. Solution 后缀自动机例题. 构出后缀自动机以后,对每 ...
- 解题:POI 2007 Driving Exam
题面 有点意思的题 从一个位置$i$出发可以到达每一个位置即是从$1,n$出发可以到达$i$.然后有了一个做法:把图上下反转后建反图,这样就可以求从一个点$i$到达左右两侧的花费$dp[i][0/1] ...