[php]php总结(1)

时间:2021-11-21 20:24:19

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的值是在不断增加的

随机推荐

  1. ActiveMQ跑起来

    转自:http://blog.163.com/chengwei_1104/blog/static/5364527420138231573547/?suggestedreading&wumii ...

  2. 配置 Sublime Text 用 Node&period;js 执行 JavaScript 程序

    1. 首先到 nodejs.org 下载 Node.js 安装包并安装. 2. 打开 Sublime Text 2 编辑器.选择菜单 Tools --> Build System --> ...

  3. Stooge排序与Bogo排序算法

    本文地址:http://www.cnblogs.com/archimedes/p/stooge-bogo-sort-algorithm.html,转载请注明源地址. Stooge排序算法 Stooge ...

  4. MulticastSocket绑定端口的问题

    该文章由 Binkery 发布于 Binkery技术博客 http://www.binkery.com 如转载请注明出处,该文章的链接地址为 http://www.binkery.com/archiv ...

  5. 【基础】新手任务,五分钟全面掌握JQuery选择器

    1. 基本选择器 1.1 ID选择器: //选中id为myDiv的元素,速度最快 $("#myDiv") 1.2 类选择器: //选中class属性为red的所有元素 $(&quo ...

  6. 利用XPT2046制作一个电位器AD转换装置

    XPT2046是一款四线制电阻触摸屏控制芯片,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器,支持从1.5V到5.25V的低电压I/O接口. 所谓逐步逼近型,就是输入一个模拟量,其与100 ...

  7. OpenGL学习--05--纹理立方体--BMP文件格式详解&lpar;转载&rpar;

    http://blog.csdn.net/o_sun_o/article/details/8351037 BMP文件格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称 ...

  8. Java-链表(单向链表、双向链表)

    Java-链表 1.什么是链表? 2.链表的特点是什么? 3.链表的实现原理? 4.如何自己写出一个链表? 1.什么是链表? 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过 ...

  9. 蓝桥杯 历届试题 剪格子(dfs搜索)

    历届试题 剪格子 时间限制:1.0s   内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |* || +--****--+ ||* | ** ...

  10. 自动化运维工具——ansible系列命令

    ansible-galaxy 连接 https://galaxy.ansible.com 下载相应的roles,此网站是Ansible爱好者将日常使用较好的playbooks打包上传,其他人可以免费下 ...