php学习笔记-面向过程篇
php官方手册
php简介
- 超文本预处理语言( Hypertext Preprocessor )
- 开源、脚本、可嵌入html、尤其适用于web开发的计算机语言
- php5完全引入面向对象
语法
结构
<?php 代码 ?>
每个代码语句结尾必须有;
注释
// 单行
/*
多行
*/
变量【弱类型】
$name = "mike";
变量作用域(4)
local 局部变量
局部变量默认会覆盖同名全局变量
funcion() {$name = "mike";
}
global 全局变量
作用域一致到当前php文件结尾
<?php
$name="mike";
function () {global $mike;$GLOCALS['name'];//默认挂在全局魔术变量上 两者相同
}
static 静态作用域
<?php
function test() {static $c=0;echo($c++);echo PHP_EOL;
}
test();// 0
test();// 1
?>
param 参数作用域(=局部作用域)
<?php
function test($p) { // 参数作用域echo($p);
}
test(1);// 0
echo($p);
?>
输出
echo、print
- echo可同时打印多个参数,但是不能带括号
- print只能打印一个参数
- 打印数组都返回Array
- echo 没有返回值、print 总是返回1
<?php echo "test<br>";?>
EOF定界符
用于原样输出且会解析转义字符
<?php
echo <<<EOF
<h1>欢迎\n访问\n我的博客</h1>
EOF;
?>
// 结构
<h1>欢迎
访问
我的博客</h1>
数据类型(7)
gettype 查看类型
字符串
$str1 = "hello";// 单双引号都可
$str2 = 'world';
- 并置运算符
连接两字符串
"a"."b" == "ab"
- 相关字符串操作函数
长度 【strlen 字节数 mb_strlen("",“utf-8”) 中文个数】
特定字符位置 【int mb_strpos(待匹配,“匹配字符串”) 否则返回false】
字符截取【mb_substr(字符串, 开始,长度, 编码)】
字符分割为数组 【explode(".",$str)】
数组转字符串 【join(“分隔符”,数组)】
字符串替换【str_replace(代替换,替换,字符串,替换次数)】
字符串匹配
反转字符串 strrev
整型
也就是没有小数
$num = 10;
$num = 0x8a;
echo $num;// 十进制输出 138
浮点型
<?php
$num = 2.4e3;
$num = 8E-5;
var_dump($num);/ / float(8.0E-5)
var_dump($num+1);// float(1.00008)
?>
布尔
区分大小写
true、false
数组
<?php
$arr = array("mike",18);
var_dump($arr);
?>
// 结果:
array(2) {[0]=>string(4) "mike"[1]=>int(18)
}
- 数字数组
Array
([0] => mike[1] => 18
)
- 关联数组
array("name"=>"mike", "age"=>18);
- 遍历关联数组
foreach($arr as $key=>$val) {echo "key=".&key.",Value=".$val;
}
- 多维数组
$persons = array
(array("name"=>'mike',"age"=>18),array("name"=>'mike',"age"=>18)
)
相关函数:
count() 数组元素数目
array_pop/push
array_replace
array_search()
array_shift() 删除头部元素
array_sum()
array_splice(array,start,length,array)
sort() 升序
rsor() 倒序
asort 值排序
ksort 键排序
对象
对象需要使用含有方法和属性的类型实例化创建
<?php
class Person {var $name;var $age;function __construct($name, $age=20) {$this->name = $name;$this->age = $age;}function printInfo() {return $this->name." ".$this->age;}
}
$p = new Person('mike');
echo $p->printInfo();
// $this 始终指向当前实例化对象
?>
NULL
空值
类型比较
松散/严格比较
- 松散 == 比较值
- 严格 === 比较值和类型
- 0== “0”==false
- 0==""==null
比较函数区别
- is_null
- empty
- is_set 是否设置并不为空
常量
常量名不需要加 $ 修饰符
不区分大小写
是全局的
<?php
define("PI",3.14);
?>
运算符
算数运算符
+ - * / % - .
赋值运算符
+= -= *= /= %= -= .=
递增/递减运算符
++x x--
比较运算符
== <>不等 !==绝对不放
逻辑运算符
and or xor || !
数组运算符
用于数组比较
== 键值 值等
=== 类型等
+ 数组不同拼接
三元运算符
$a==0?xxx:xxx
可以简写为
$a==0?:xxx 真返回$a(php5.3+)
$a==0??xxx 真返回$a(php7+) 合并运算符 同上
组合比较符(PHP7+)
$a <=> $b
$a > $b 返回 1
== 0
< -1
运算符优先级
条件语句
if
if...else if...else...
switch
switch ($n)
{case 1: break;default:
}
超级全局变量(php4.1+)
一个脚本的全部作用域中都可用
$GLOBALS
全局变量名就为$GLOBALS键
$name = "mike";
echo $GLOBALS['name']; // mike
$_SERVER
服务器信息
常用
当前路径
PHP_SELF
请求方式
REQUREST_METHOD
请求ip
REMOTE_IP
请求时间
REQUREST_TIME
请求参数
QUERY_STRING
$_REQUREST
用于收集HTML表单提交的数据
$_REQUEST['表单字段']
$_POST/GET
post提交表单
循环
while
while(condition){
}
do{
}while(condition)
for
foreach (数组 as key=>value){}
遍历数组
函数
function fn ($param) {return $param;
}
魔术常量
不区分大小写
- 行号: _LINE_
- 文件: _FILE_
- 文件夹: _DIR_
- 当前所处函数名: _FUNCTION_ 、_METHOD_
区别:
METHOD 类::方法 - 当前所处类名: _CLASS_
- 当前命名空间: _NAMESPACE_
- trait 重用方法
<?php
trait common {public function getName() {return $this->name;}public function getAge() {return $this->age;}}
class Person {use common;public $name;public $age;public function __construct($name, $age) {$this->name = $name;$this->age = $age;}}
$p = new Person("mike",18);
echo($p->getName());
?>
php学习笔记-面向过程篇相关推荐
- Java学习笔记之基础篇
Java学习笔记之基础篇 目录 Java如何体现平台的无关性? 面向对象(OO)的理解 面向对象和面向过程编程的区别 面向对象三大特征 静态绑定和动态绑定(后期绑定) 延伸:类之间的关系 组合(聚合) ...
- OracleDesigner学习笔记1――安装篇
OracleDesigner学习笔记1――安装篇 QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一. 前言 Oracle是当 ...
- Redis学习笔记1-理论篇
目录 1,Redis 数据类型的底层结构 1.1,Redis 中的数据类型 1.2,全局哈希表 1.3,数据类型的底层结构 1.4,哈希冲突 1.5,rehash 操作 2,Redis 的 IO 模型 ...
- 树莓派4B学习笔记——IO通信篇(UART)
文章目录 UART简介 树莓派使用UART与串口屏通信 串口屏简介 硬件连接 配置串口接口 树莓派打开UART接口 树莓派安装串口调试助手 编程实现 wiringSerial.h Serial简介 C ...
- JavaScript学习笔记之入门篇
JavaScript学习笔记之入门篇 JavaScript引入 1. 页面级 js: 2. 外部js文件: JavaScript变量 1. 变量的作用: 2. 声明变量: 3. 变量赋值: 4. 单一 ...
- flink1.12.0学习笔记第2篇-流批一体API
flink1.12.0学习笔记第 2 篇-流批一体API flink1.12.0学习笔记第1篇-部署与入门 flink1.12.0学习笔记第2篇-流批一体API flink1.12.0学习笔记第3篇- ...
- jqGrid 学习笔记整理——进阶篇(一 )
jqGrid 学习笔记整理--进阶篇(一 ) 本篇为基础篇的扩展,使其具有增.删.改.查的基本功能. 在浏览导航栏添加所需按钮 <!DOCTYPE html> <html>&l ...
- Postgresql学习笔记-高级语法篇
Postgresql学习笔记-高级语法篇 Postgresql 约束 Postgresql约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表的时候就规定(通 ...
- RabbitMQ学习笔记(高级篇)
RabbitMQ学习笔记(高级篇) 文章目录 RabbitMQ学习笔记(高级篇) RabbitMQ的高级特性 消息的可靠投递 生产者确认 -- confirm确认模式 生产者确认 -- return确 ...
最新文章
- python与或非运算规则_Python逻辑运算符及其用法
- PyCharm安装mysqlclient一直提示MS Visual C++ 14 required
- sql server解析xml属性为表格_Mybatis中SqlSource解析流程详解
- 构建之法第一章读后感
- CSDN公式编辑(latex语言应用)整理
- java .net 互通redis_C# servicestack.redis 互通 java jedis
- Dollar toolbox 学习笔记(一)
- 呼叫中心服务器怎么设置,本地呼叫中心和云呼叫中心服务器部署方式
- 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论
- scala编程_Scala编程语言简介
- iPhone企业应用实例分析之四:技术要点分析(1)
- 江天数据220kV变电站开建 实现更高电能质量和电力可靠性
- c51单片机汇编语言1秒延时,51单片机汇编延时程序算法详解
- 基于深度学习方法的事件抽取论文整理
- Espresso之RecyclerView
- C#调用RabbitMQ实现消息队列
- 王峰五小时对话冯波:如果今天没有区块链,你会做什么?
- 使用Git将代码上传到Gitee仓库
- 使用endnote在毕业论文中插入文献
- scratch——打砖块
热门文章
- Yonex VT-ZF 与李宁N90对比
- TLWR742N路由器服务器无响应,TP-Link TL-WR742N无线路由器怎么设置 | 192路由网
- 手机产品框架层设计: 两种主要的布局方式
- NTP 搭建时间同步服务器
- 微信开放平台【第三方平台】java开发总结:验证票据(component_verify_ticket)(-)
- 敏捷外包工程系列之三:固定合同(敏捷外包工程,敏捷开发,产品负责人,客户价值)
- Android图片压缩方法总结
- 风范股份20190107
- voltdb mysql_voltdb的一些文档
- 计算机考试多余操作会扣分吗,计算机二级MS Office考试多余的操作步骤会扣分吗...