PHP

标识符/关键字/数据类型

标识符:其实标识符就是变量的名称,函数与类的名称也是标识符。PHP中标识符的规则:
1.标识符可以是任意长度的字母、数字、下划线,且不得以数字开头。
2.PHP中标识符是区分大小写的,但函数名是个例外。
3.变量名可以与函数名相同。但应尽量避免。
4.不能创建与已有函数同名的函数。
 
值得注意的是PHP不要求在使用前就一定要声明标识符;
 
PHP有很多内置的标识符,例如:$_REQUEST,$SERVER等等, 这些标识符都和和JS中的方法例如(alert(),indexOf...)一样会实现一些功能,做一些事情,这些东西我们可以把它理解为一个工具,比如菜刀、螺丝刀,指甲刀,都是用来做某些事情的。

关键字:

共有85个关键字,这些关键字都会实现一些功能; 类似于js中的typeof,这里我们可以看到很多熟悉的身影; 例如 case break continue ..这些针对循环的关键字;
 
and  or  xor  __FILE__ extends  __LINE__  array()  as  break  case  class  const  continue  declare  default  die()  do  echo  else  elseif  empty()  enddeclare  endfor  endforeach  endif  endswitch  endwhile  eval()  exit()  extends  for  foreach  function  global  if  include  include_once  isset()  list()  new  print  require  require_once  return  static  switch  unset()  use  var  while  __FUNCTION__  __CLASS__  __METHOD__
 
final(PHP 5)  php_user_filter(PHP 5)  interface(PHP 5)  implements(PHP 5)  exception(PHP 5)  public(PHP 5)  private(PHP 5)  protected(PHP 5)  abstract(PHP 5)  clone(PHP 5)  try(PHP 5)  catch(PHP 5)  throw(PHP 5) this(PHP 5 only)

输出方法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格式的数据

数据库

     数据库是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以我们使用关系型数据库管理系统,来存储和管理大量的数据。
 
     所谓关系型数据库,是建立在关系模型基础上的数据库,借助与集合代数等数学概念和方法来处理数据库中的数据。
     其特点为:
     1.数据以表格形式出现;
     2.每行为各种记录的名称;
     3.每列为记录名称所对应的数据域;
     4.许多行和列组成一张表单;
     5.若干的表单组成database
 
 
     数据库:数据库是一些关联表的集合;
 
     数据表:表是数据的矩阵,在一个数据库中的表看起来像是一个简单的电子表格;
 
     列:一列数据元素,包含了相同的数据;字段
 
     行:一行记录,是一组相关的数据;记录
 
     主键:是唯一的,一个数据表只能包含一个主键,可以用主键查询数据;
 
     MySQL是一个开源的关系型数据库管理系统。目前属于Oracle公司。
 
 
数据库中的数据类型
     整型:
类型 存储范围 字节
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();
断开连接
程序执行完毕自动断开,可省略不用

     插入记录(创建字段下的数据):
          INSERT tb_name (col_name,...) VALUES(val,...);
     查找记录:
          SELECT col_name,... FROM tb_name;
     更新记录UPDATE:
          UPDATE tb_name SET age = age + 5, sex = 2 WHERE username='TOM’;
     删除记录DELETE:
          DELETE FROM tb_name WHERE id=2;
 
     排序:SELECT * FROM stu ORDER BY 笔试 LIMIT 0,8
 
 
 
 

PHP的简单了解的更多相关文章

  1. 【造轮子】打造一个简单的万能Excel读写工具

    大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...

  2. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  3. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  4. 哪种缓存效果高?开源一个简单的缓存组件j2cache

    背景 现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的.我在项目中也开始接触一些缓存的需求. 开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务 ...

  5. 在Openfire上弄一个简单的推送系统

    推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...

  6. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  7. 使用 Nodejs 搭建简单的Web服务器

    使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...

  8. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

  9. 简单入门canvas - 通过刮奖效果来学习

    一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...

  10. 简单粗暴地理解js原型链--js面向对象编程

    原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...

随机推荐

  1. springmvc接收参数为日期类型

    用单个Date类型接收日期类型时,会出现报错,加上initBinder的方法 意思是将所有传入的参数都通过此方法,如果过是日期通过日期格式化器进行格式化 如果是接收类型为对象内的属性为Date类型时 ...

  2. cmdb知识总结

    cmdb面试 1.paramiko模块的作用与原理 2.cmdb是什么 3.为什么要开发CMDB? 4.你们公司有多少台服务器?物理机?虚拟机? 5.你的CMDB是如何实现的? 6.CMDB都用到了哪 ...

  3. Python协程介绍(转)

    原文:https://www.liaoxuefeng.com/wiki/897692888725344/923057403198272 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很 ...

  4. (7)ASP.NET Core 中的错误处理

    1.前言 ASP.NET Core处理错误环境区分为两种:开发环境和非开发环境.●开发环境:开发人员异常页.●非开发环境:异常处理程序页.状态代码页.在Startup.Configure方法里面我们会 ...

  5. C# vb .net图像合成-合成椭圆

    在.net中,如何简单快捷地实现图像合成呢,比如合成文字,合成艺术字,多张图片叠加合成等等?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码 ...

  6. Neo私钥到地址

    基础名词 Neo是个区块链工程,地址,公钥,私钥,地址脚本,base58,sha256,ripemd160,ECCsa,secp256k1,secp25r1这些词都是区块链技术相关的,或是新东西或者有 ...

  7. MongoDB常用数据库命令第二集

    =======================基础命令======================= mongo 进入数据库操作界面db 查看当前使用的数据库show dbs 查看当前已经被创建出来的 ...

  8. js浏览器对象模型【BOM】(十三)

    一.时间定时器1.超时调用setTimeout(fun,time)    [返回一个唯一标识该超时调用的ID数值]参数:fun:要执行的函数time:设置第多少毫秒后执行fun函数 clearTime ...

  9. vue打包后页面显示空白但是不报错

    在使用vue打包的时候页面显示空白,并且控制台不报错 设置vue-router的时候mode设置为history模式了,这种模式要有后台的配合,一般还是使用哈希模式就不会出现页面空白了.

  10. vue学习整理

    1.webpack+vue自定义路径别名 vue-cli 用的是webpack,也可以使用webpack自定义别名这个功能,自定义别名这个功能当你在多层文件夹嵌套的时候不必一层一层找路径,直接使用自定 ...