php官方手册

php简介

  1. 超文本预处理语言( Hypertext Preprocessor )
  2. 开源、脚本、可嵌入html、尤其适用于web开发的计算机语言
  3. 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';
  1. 并置运算符
    连接两字符串
"a"."b" == "ab"
  1. 相关字符串操作函数
    长度 【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)
}
  1. 数字数组
Array
([0] => mike[1] => 18
)
  1. 关联数组
array("name"=>"mike", "age"=>18);
  • 遍历关联数组
foreach($arr as $key=>$val) {echo "key=".&key.",Value=".$val;
}
  1. 多维数组
$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

空值

类型比较

松散/严格比较
  • 松散 == 比较值
  • 严格 === 比较值和类型
  1. 0== “0”==false
  2. 0==""==null
比较函数区别
  1. is_null
  2. empty
  3. 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学习笔记-面向过程篇相关推荐

  1. Java学习笔记之基础篇

    Java学习笔记之基础篇 目录 Java如何体现平台的无关性? 面向对象(OO)的理解 面向对象和面向过程编程的区别 面向对象三大特征 静态绑定和动态绑定(后期绑定) 延伸:类之间的关系 组合(聚合) ...

  2. OracleDesigner学习笔记1――安装篇

    OracleDesigner学习笔记1――安装篇   QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一.       前言 Oracle是当 ...

  3. Redis学习笔记1-理论篇

    目录 1,Redis 数据类型的底层结构 1.1,Redis 中的数据类型 1.2,全局哈希表 1.3,数据类型的底层结构 1.4,哈希冲突 1.5,rehash 操作 2,Redis 的 IO 模型 ...

  4. 树莓派4B学习笔记——IO通信篇(UART)

    文章目录 UART简介 树莓派使用UART与串口屏通信 串口屏简介 硬件连接 配置串口接口 树莓派打开UART接口 树莓派安装串口调试助手 编程实现 wiringSerial.h Serial简介 C ...

  5. JavaScript学习笔记之入门篇

    JavaScript学习笔记之入门篇 JavaScript引入 1. 页面级 js: 2. 外部js文件: JavaScript变量 1. 变量的作用: 2. 声明变量: 3. 变量赋值: 4. 单一 ...

  6. flink1.12.0学习笔记第2篇-流批一体API

    flink1.12.0学习笔记第 2 篇-流批一体API flink1.12.0学习笔记第1篇-部署与入门 flink1.12.0学习笔记第2篇-流批一体API flink1.12.0学习笔记第3篇- ...

  7. jqGrid 学习笔记整理——进阶篇(一 )

    jqGrid 学习笔记整理--进阶篇(一 ) 本篇为基础篇的扩展,使其具有增.删.改.查的基本功能. 在浏览导航栏添加所需按钮 <!DOCTYPE html> <html>&l ...

  8. Postgresql学习笔记-高级语法篇

    Postgresql学习笔记-高级语法篇 Postgresql 约束 Postgresql约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表的时候就规定(通 ...

  9. RabbitMQ学习笔记(高级篇)

    RabbitMQ学习笔记(高级篇) 文章目录 RabbitMQ学习笔记(高级篇) RabbitMQ的高级特性 消息的可靠投递 生产者确认 -- confirm确认模式 生产者确认 -- return确 ...

最新文章

  1. python与或非运算规则_Python逻辑运算符及其用法
  2. PyCharm安装mysqlclient一直提示MS Visual C++ 14 required
  3. sql server解析xml属性为表格_Mybatis中SqlSource解析流程详解
  4. 构建之法第一章读后感
  5. CSDN公式编辑(latex语言应用)整理
  6. java .net 互通redis_C# servicestack.redis 互通 java jedis
  7. Dollar toolbox 学习笔记(一)
  8. 呼叫中心服务器怎么设置,本地呼叫中心和云呼叫中心服务器部署方式
  9. 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论
  10. scala编程_Scala编程语言简介
  11. iPhone企业应用实例分析之四:技术要点分析(1)
  12. 江天数据220kV变电站开建 实现更高电能质量和电力可靠性
  13. c51单片机汇编语言1秒延时,51单片机汇编延时程序算法详解
  14. 基于深度学习方法的事件抽取论文整理
  15. Espresso之RecyclerView
  16. C#调用RabbitMQ实现消息队列
  17. 王峰五小时对话冯波:如果今天没有区块链,你会做什么?
  18. 使用Git将代码上传到Gitee仓库
  19. 使用endnote在毕业论文中插入文献
  20. scratch——打砖块

热门文章

  1. Yonex VT-ZF 与李宁N90对比
  2. TLWR742N路由器服务器无响应,TP-Link TL-WR742N无线路由器怎么设置 | 192路由网
  3. 手机产品框架层设计: 两种主要的布局方式
  4. NTP 搭建时间同步服务器
  5. 微信开放平台【第三方平台】java开发总结:验证票据(component_verify_ticket)(-)
  6. 敏捷外包工程系列之三:固定合同(敏捷外包工程,敏捷开发,产品负责人,客户价值)
  7. Android图片压缩方法总结
  8. 风范股份20190107
  9. voltdb mysql_voltdb的一些文档
  10. 计算机考试多余操作会扣分吗,计算机二级MS Office考试多余的操作步骤会扣分吗...