PHP的简单了解
PHP
标识符/关键字/数据类型
关键字:
输出方法echo和print
echo的速度快于print ,echo没有返回值,而print有返回值,且返回值总为1。
<?php
echo 'hello word<br>';
print 'hello word';
?>
输出结果为:hello world
hello world die() >> 输出一条消息,并退出当前脚本。//相当于 return的结束当前函数的功能
函数
其实PHP最经典,也是最核心的地方就是函数,PHP提供了超过一千种內建函数,参考手册点击前往;
作用域:
1.局部变量;
函数中的参数也是局部变量;
<?php
$x=5; // 全局变量
function myTest(){
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>”;
echo "变量 x 为: $x”;
echo "<br>”;
echo "变量 y 为: $y”;
}
myTest();
echo "<p>测试函数外变量:<p>”;
echo "变量 x 为: $x”;
echo "<br>”;
echo "变量 y 为: $y”;
?>
2.全局变量:
<?php
$x=5;
$y=10;
function myTest(){
global $x,$y; //利用这个关键字声明的变量是全局变量;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?> 3.Static 作用域(JS中的闭包);
局部变量在运行结束之后会被删除,再次重新声明时会被重新赋值,但是static类变量不会,他会一直存在于php的变量中;
<?php
function fnName(){
static $x = 11;
echo $x;
$x++;
}
fnName();
fnName();
?>
数组
1.什么是数组?
用来储存多个数据的数据类型; 2.创建数组:
$arr = array(1,2,3,4,5); 3.使用数组:
$arr[0] //
$arr[1] // 手动数组赋值:
$arr[0] = 11; 数组相关方法:
获取数组长度:count()函数;
count($arr);//返回数组长度; 这样我们就可以写for循环了,数组中的内容我们就可以遍历出来了; for($x = 0 ; $x < count($arr) ; $x++){
echo $arr[$x];
} php关联数组:(用=>链接起来) $testArray = array('name' => 'liyang','age' => 18 );
echo 'liyang age is '.$testArray['age']; 数组排序:
sort() :升序排列; rsort() :降序排列; 遍历关联数组:foreach(); foreach()第一个参数为数组>> foreach($arr); foreach()第二个参数为关键字as代表在数组中找到的值赋给后面的变量 >> foreach($arr as); foreach()第三个和第四个参数为key和value ;也就是关联数组中的键和值 用 => 链接 >> froeach($arr as $key => value); $arr = array('firstName' => 'yang', 'lastName' => 'huaizhi’);
foreach ($arr as $key => $value) {
echo $key.'<br>';
echo $value.'<br>';
} foreach() 会执行两次,因为数组中有两对数据,如果数组中的数据有n个那么foreach就执行n次; 键值一一对应,根据颜色来查看;
对象
1.类与对象;
<?php
class show{
var $hello = "hello”;
function showMe(){
echo $this->hello . " world";
}
}
$me = new show();
$me -> showMe();
?> PHP中 用class 命名一个对象, 这个对象里面可以有属性和方法, 属性的命名方式为 var $变量名 = 变量值; 在类中使用这个变量的时候使用 $this 指向当前类。 $this -> 变量名(直接写变量名); 实例化类的时候,用new关键字; 调用内部方法的时候 使用 ->
返回JSON格式数据
json_encode()方法进行json格式的转码;
接收一个关联数组,返回值就是json格式的数据
作用:就是将关联数组转换成json格式的数据
数据库
类型 | 存储范围 | 字节 |
TINYINT |
有符号值:-128到127(-2^7到2^7-1)
无符号值:0到255(0到2^8-1)
|
1 |
SMALLINT |
有符号值:-32768到32767(-2^15到2^15-1)
无符号值:0到 65 535(0到2^16-1)
|
2 |
MEDIUMINT |
有符号值:-8388608到8388607(-2^23到2^23-1)
无符号值:0到 16 777 215(0到2^24-1)
|
3 |
INT |
有符号值:-2147483648到2147483647(-2^31到2^31-1)
无符号值:0到 4 294 967 295(0到2^32-1)
|
4 |
BIGINT |
有符号值:-922337203685477808到922337203685477807(-2^63到2^63-1)
无符号值:0到 18 446 744 073 709 551 615(0到2^64-1)
|
8 |
类型 | 存储范围 | 字节 |
FLOAT(4,1) |
有符号:(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)
无符号:0到(1.175 494 351 E-38,3.402 823 466 E+38)
|
4 |
DOUBLE |
有符号: (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
无符号: 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
|
8 |
类型 |
大小
(字节)
|
范围 | 格式 | 用途 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 |
1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
|
YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
类型 | 大小 | 用途 |
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-65535 字节 | 变长字符串 |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
TEXT | 0-65 535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
在PHP中使用MySQL
连接数据库管理系统函数:
$link = new mysqli(host,username,password,dbname);
参数释义:
host,mysql的主机名或ip地址
usernane,mysql用户名
pasword,mysql密码
dbname,要操作的数据库名
返回值:
当连接成功时返回连接标识符
当连接失败时返回false
连接失败:
echo $link->connect_error; 设置字符集:
$link->set_charset("utf8"); 查询语句(执行一条sql语句):
$link->query(sql命令); 插入数据:
$query1 = "insert tb_name (字段名) values(对应值)";
$link->query($query1); 更新数据:
$query2 = "update tb_name set 字段名=值 where 条件";
$link->query($query2); 删除记录:
$query3 = "delete from tb_name where 条件"
$link->query($query3); 查询记录:
$query4 = "select * from tb_name";
$res = $link->query($query4); 索引数组+关联数组查看数据:$res->fetch_array()
索引数组查看数据:$res->fetch_row();
关联数组查看数据:$res->fetch_assoc(); √
对象方式查看数据:$res->fetch_object();
以上四种方式每次执行返回一条记录的数据,可配合循环多次执行,查询所有数据 断开数据库的函数:
$link->close();
断开连接
程序执行完毕自动断开,可省略不用
PHP的简单了解的更多相关文章
- 【造轮子】打造一个简单的万能Excel读写工具
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 哪种缓存效果高?开源一个简单的缓存组件j2cache
背景 现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的.我在项目中也开始接触一些缓存的需求. 开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务 ...
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 使用 Nodejs 搭建简单的Web服务器
使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...
- ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面
前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...
- 简单入门canvas - 通过刮奖效果来学习
一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...
- 简单粗暴地理解js原型链--js面向对象编程
原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...
随机推荐
- springmvc接收参数为日期类型
用单个Date类型接收日期类型时,会出现报错,加上initBinder的方法 意思是将所有传入的参数都通过此方法,如果过是日期通过日期格式化器进行格式化 如果是接收类型为对象内的属性为Date类型时 ...
- cmdb知识总结
cmdb面试 1.paramiko模块的作用与原理 2.cmdb是什么 3.为什么要开发CMDB? 4.你们公司有多少台服务器?物理机?虚拟机? 5.你的CMDB是如何实现的? 6.CMDB都用到了哪 ...
- Python协程介绍(转)
原文:https://www.liaoxuefeng.com/wiki/897692888725344/923057403198272 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很 ...
- (7)ASP.NET Core 中的错误处理
1.前言 ASP.NET Core处理错误环境区分为两种:开发环境和非开发环境.●开发环境:开发人员异常页.●非开发环境:异常处理程序页.状态代码页.在Startup.Configure方法里面我们会 ...
- C# vb .net图像合成-合成椭圆
在.net中,如何简单快捷地实现图像合成呢,比如合成文字,合成艺术字,多张图片叠加合成等等?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码 ...
- Neo私钥到地址
基础名词 Neo是个区块链工程,地址,公钥,私钥,地址脚本,base58,sha256,ripemd160,ECCsa,secp256k1,secp25r1这些词都是区块链技术相关的,或是新东西或者有 ...
- MongoDB常用数据库命令第二集
=======================基础命令======================= mongo 进入数据库操作界面db 查看当前使用的数据库show dbs 查看当前已经被创建出来的 ...
- js浏览器对象模型【BOM】(十三)
一.时间定时器1.超时调用setTimeout(fun,time) [返回一个唯一标识该超时调用的ID数值]参数:fun:要执行的函数time:设置第多少毫秒后执行fun函数 clearTime ...
- vue打包后页面显示空白但是不报错
在使用vue打包的时候页面显示空白,并且控制台不报错 设置vue-router的时候mode设置为history模式了,这种模式要有后台的配合,一般还是使用哈希模式就不会出现页面空白了.
- vue学习整理
1.webpack+vue自定义路径别名 vue-cli 用的是webpack,也可以使用webpack自定义别名这个功能,自定义别名这个功能当你在多层文件夹嵌套的时候不必一层一层找路径,直接使用自定 ...