PHP字符串处理(二)
澳门葡萄京官方网站 1

这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程.

PHP 数据类型

  • 名称:PHP语法结构
  • 讲师:administrator
  • 频道:PHP视频
  • 类别:PHP基础视频
  • 时间:2010-06-01
  • 点击次数:42

  • 视频简介

  • 购买视频
  • 查看评论
  • 视频下载
  • 课程管理
  • 免费视频

个人学习方法分享全栈开发自学笔记 已开源[PHP开发学习笔记]
稍后更新[PHP开发学习笔记] 稍后更新[PHP开发学习笔记] 稍后更新

四种标题类型

  • boolean
  • integer
  • float(浮点型,也称作 double)
  • string

澳门葡萄京官方网站 2

本文阅读建议1.一定要辩证的看待本文.2.本文并不会涉及到PHP详细知识点,只陈述在学习PHP过程中遇到的关键点.3.PHP依照其开发应用分为'基础篇,面向对象篇,框架篇,实际应用篇',根据本人学习进度更新.4.本文知识点繁杂,并不能全部发布,还请移步github下载完整笔记进行参考5.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程中,有什么遗漏或错误还望各位指出.6.觉得哪里不妥请在评论留下建议~7.觉得还行的话就点个小心心鼓励下我吧~

三种复合类型

  • array
  • object
  • callable

视频说明»

1.PHP介绍2.环境搭建3.HTTP协议4.PHP基础

两种特殊类型

  • resource
  • NULL

PHP字符串处理(二)

  • 认识PHP
  • PHP可以做什么
  • 使用流程
  • 基本语法
  • 基本数据类型
  • 类型转换
  • 变量
  • 澳门葡萄京官方网站 ,常量
  • 字符串
  • 数组
  • 宏定义
  • 传值
  • 运算符
  • 流程控制
  • 函数
  • 数组与数组结构
  • 文件加载
  • 错误处理

伪类型

  • mixed
  • number
  • callback(回调类型,又称为 callable)
  • array|object(数组 | 对象类型)
  • void

PHP语法结构
1.PHP变量
2.PHP数据类型
3.PHP数据类型转换细节
4.PHP表达式
5.PHP运算符(算术运算符、关系运算符、逻辑运算符等…)
6.PHP常用函数

5.PHP基础项目写法6.总结

获取变量的类型

gettype — 获取变量的类型

string gettype ( mixed $var )

作者:PHP视频教程
@PHP 培训修订1.0 2010-06

学习体会

这篇文章大概在大半个月前就应该发出来了,为什么鸽了这么久呢,因为那时才学习了一个星期的PHP,在阅读了大量的书籍和文章以后,我才发现,这门所谓”世界上最好的语言”学起来,并没有那么简单.

因为不想直接从书籍和文章搬运,所以这篇以及其他文章迟迟没有发布出来,我要总结出属于自己的东西.

在经过了将近这大半个月的学习,终于对PHP这门语言拥有了自己的看法和见解.

首当其冲的就是,在学习PHP语言开发的同时,一定要结合着MySQL进行学习,并且做一个拥有自己想法的网站Demo,充分利用起来HTML
& CSS & JavaScript.

检测变量的类型

  • is_array — 检测变量是否是数组
  • is_bool — 检测变量是否是布尔型
  • is_callable — 检测参数是否为合法的可调用结构
  • is_double — is_float 的别名
  • is_float — 检测变量是否是浮点型
  • is_int — 检测变量是否是整数
  • is_integer — is_int 的别名
  • is_iterable — Verify that the contents of a variable is an iterable
    value
  • is_long — is_int 的别名
  • is_null — 检测变量是否为 NULL
  • is_numeric — 检测变量是否为数字或数字字符串
  • is_object — 检测变量是否是一个对象
  • is_real — is_float 的别名
  • is_resource — 检测变量是否为资源类型
  • is_scalar — 检测变量是否是一个标量
  • is_string — 检测变量是否是字符串
  • isset — 检测变量是否设置
  • is_nan — 判断是否为合法数值

乐学 PHP学院是国内专业的 PHP 培训机构,天津最好的 PHP 培训机构,拥有完整全面的 PHP 培训课程体系,使用自行开发的 PHP 内容管理系统作为授课案例,真实项目教学,还提供
PHP 教程、 PHP 视频、 PHP 人才、 PHP 开发等服务 !

如何学习

PHP这门语言虽然有着容易上手之称,但因为其开源,所以其复杂程度并不亚于任何一门成熟的面向对象语言.

因为其种类为服务器脚本语言,刚入门的时候,我们学习的必定是PHP面向过程的写法.

通过面向过程的写法去了解PHP这门服务器脚本语言,然后带入类和对象的概念,因为其版本原因,在PHP5.1版本后才完全支持面向对象.

在学习了面向对象以后,自然会引入MVC和其他类型的设计模式,设计出成型的项目架构,或者使用现在项目中较为流行的Smarty、ThinkPHP、Laravel等

变量类型转换

settype — 设置变量的类型

bool settype ( mixed &$var , string $type )
参数 解释
var 要转换的变量。
type 转换后的数据类型

PHP介绍

经过这一段时间的学习,个人认为PHP主要用来处理从服务器发送来的请求

本文主要阐述PHP语言的基础部分,并不涉及面向对象以及MVC概念.

type取值

  • “boolean” (或为“bool”,从 PHP 4.2.0 起)
  • “integer” (或为“int”,从 PHP 4.2.0 起)
  • “float” (只在 PHP 4.2.0
    之后可以使用,对于旧版本中使用的“double”现已停用)
  • “string”
  • “array”
  • “object”
  • “null” (从 PHP 4.2.0 起)

环境搭建

环境搭建可以看我这篇文章LAMP环境搭建。

类型强制转换

  • , – 转换为整形 integer
  • , – 转换为布尔类型 boolean
  • , , – 转换为浮点型 float
  • – 转换为字符串 string
  • – 转换为数组 array
  • – 转换为对象 object
  • – 转换为 NULL

HTTP协议

推荐读者阅读图解HTTP协议这本书,更系统的了解什么是HTTP协议

OSI参考模型分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

网络之间传输都是基于HTTP协议,但HTTP协议当中还有很多子协议,其中TCP/IP协议便是其内部的一个子集.

TCP/IP又将OSI分为了四层,让其分工更加明确:应用层->传输层->网络层->链路层.

URL全称为Uniform Resource
Identifier,中文意思是统一资源标识符,网络请求URL,由服务器返回请求该标识符的资源例如网页、视频、文件等.

例如:www.jianshu.com 这就是一个URL.

通俗来讲,网络请求都是由客户端发出,例如浏览器或手机等.

请求报文:请求行,请求头,空行,请求数据;

通俗来讲,服务器用来配置发布到万维网/互联网的内容,内容发布以后,可以通过URL进行访问.

由服务器来处理每一个由客户端访问的请求,并将其访问的数据响应给客户端

响应报文:状态行,响应码,响应正文;

Boolean 布尔类型

这是最简单的类型。boolean 表达了真值,可以为 TRUE 或 FALSE。

PHP基础

  • 服务器端的语言
  • 嵌入到HTML当中的语言
  • 脚本语言

  • 收集表单数据
  • 生成动态网页
  • 字符串处理
  • 动态输出图像
  • 处理服务器端文件系统
  • 编写数据库支持的网页
  • 会话跟踪控制
  • 处理XML文件
  • 支持利用大量的网络协议
  • 服务器端的其他相关操作

  • 编写PHP后缀文件
  • 放在服务器上
  • 通过URL访问到该PHP文件

  • php.ini配置文件
    • php解锁挂载功能模块需要修改php.ini文件
    • 各种配置设置都在该文件进行修改.
  • PHP标记
    • PHP语言,是一种可以嵌入到“html”代码中的后台处理语言
    • 开始标记
      • <?php
    • PHP代码
    • 结束标记
      • ?>
    • 示例
      • <?php php代码写在这里….. ?>
    • 其他标记格式
      • <% php代码写在这里….. %>
        • php.ini配置
      • <? php代码写在这里….. ?>
        • php.ini配置short_open_tag = On 方可使用
  • PHP语句结束规则
    • 每一行代码的结束处要以”;”结尾.
    • 结束用;号
  • 注释
    • 注释不仅方便项目交接,并可以随时说明代码的功能参数以及作用.
    • 单行注释//
    • 多行注释 /* */
  • 空白处理规范

  • 整数int & integer
  • 浮点数 float & double
  • 布尔类型 Bool & Boolean
  • 字符串类型

  • 资源类型

  • 数组类型
  • 对象类型
  • NULL类型

  • 伪类型

  • 类型判断

此处内容在笔记里有详细解释

  • 自动转换

    • 我们无需做任何处理,而是,程序会根据运算时运算符所需要的数据类型进行转换。

    • 如果参与运算的数据不是需要的类型,则会自动转换为需要的数据类型。

    $v1 = 1 + “3”; //结果是4;$v2 = 1 . “3”;
    //“.”是字符串连接符,这里,1会被转换为字符串,结果是:“13”

  • 强制转换

    • 人为使用强转换语法进行转换,比如:

    $v1 = “1”; //结果,$v1是整数类型的1$v2 = “1.23”;
    //结果是浮点类型的1.23$v3 = $v1; //结果是字符串“1”

  • 定义

    • 使用一个“标记符号”,来代表某个数据
    • 定义形式: $变量名 = 具体的数据;

    • 举例: $data =123;

    • 在PHP中变量名区分大小写.
    • 变量是一个“容器”,是一个“盒子”,是一个可以存放数据的位置——内存空间。
    • 内存中分割出很多很多的小格子,其中格子上都有标记,以及对应存放了数据。

  • 命名规则
  • 赋值 & 取值
  • 系统预定义变量
  • 变量传值
  • 可变变量

  • 含义
    • 常量,就是一个用于存储“不会变化的数据”的标识符。比如圆周率,在一定的应用场景中,就是是一个固定的值。

  • 常量字符串const
  • 系统内置常量 | 魔术常量 | 全局变化常量.
  • 系统预定义常量

  • 概念
    • 字符串在C语言当中是当做字节数组处理的
    • 字符串在PHP当中当做基本数据类型处理的,
    • 字符串没有长度限制

  • 字符串类型特点
  • 单引号字符串
  • 双引号字符串
  • 常用字符串输出函数
  • 常用字符串格式化函数
  • heredoc
  • nowdoc
  • 转义字符
  • 字符串长度

  • 概念
    • 数组,是指将若干数据按一定的顺序组合为一个整体。每个数据被称为一个“单元”——数组单元。每个单元由两部分构成:下标和值,下标也称为“键”,数组的一个重要特点是:其中的数据有明确的顺序,而是,是其放入数组时的先后顺序。
  • 下标定义

  • 整数下标
  • 索引数组
  • 关联数组
  • 数组维数
  • 遍历数组

  • define()函数形式
  • define(‘常量名’, 对应的常量值);常量名推荐使用“全大写”。

  • 判断是否存在
  • 截图

  • 值传递
  • 引用传递

  • 含义
    • 就是对数据进行某种所需要的运算的语法符号,比如加减乘除,或比较大小,或判断真假。
  • 表达式
  • 赋值运算符:=

  • 算术运算符:

      • / %

  • 连接运算符& 字符串运算符:.
  • 自赋值运算符:+= -= *= /= %= .=
  • 自操作运算符:++ —
  • 比较运算符:

= < <= == != === !==

  • 逻辑运算符:&& !
  • 条件运算符:数据1 ? 数据2 : 数据3
  • 位运算符:& | ~
  • 对象运算符
  • 其他:@,是错误抑制符,括号,用于提升运算优先级,括号中的先运算。
  • 运算符优先级

  • 概述
    • 顺序结构:
      • 程序运行的自然状态,就是从前往后运行程序。
    • 分支结构:
      • 程序运行过程中,根据判断条件的不同结果(true或false),执行不同的分支。
    • 循环结构:
      • 程序运行过程中,根据判断条件的不同结果(true或false),决定是再次执行还是不再执行。
  • 分支结构

    • 单一条件分支结构 if
    • 双条件分支结构 else
    • 多条件分支结构 else if
    • 多向条件分支结构 switch

    • 巢状分支结构 if else 循环层次嵌套

  • 循环结构
  • 特殊控制语句
  • 递归处理
  • 递推处理

  • 函数的概念

    • 函数不是数!函数是一种代码形式。函数是将“若干行代码”以一种语法形式包装成的一个整体。该整体可以做到“需要的时候就去执行它”(就是执行其中的若干行代码)。函数是解决在不同情形下需要执行相同代码的有效方式——所谓代码重用。函数通常用于“专业的事由专业的人来做”这种现实世界的常见现象。

    • 也在其他语言中常被叫为”方法”.

  • 函数的作用
  • 函数详解
  • 系统预定函数
  • 作用域
  • 应用各种形式的函数

澳门葡萄京官方网站 3PHP开发学习笔记_1.png

  • 数组的定义
  • 数组的分类
    • 索引数组
    • 关联数组
  • 数组的创建
    • 字面量创建
    • array()函数声明
    • 多维数组
  • 数组的遍历
    • for循环遍历
    • foreach遍历

  • 系统预定义数组

  • 文件加载含义
    • 将一个文件包含到当前文件中,成为当前文件运行过程中的一部分。通常,一些公共的代码,在多个页面都需要用到的时候,会做成一个独立的文件。然后在不同的页面需要用到的时候,直接载入进来就可以了。
  • 文件加载的四种方法.
    • include;
      • 每次都载入文件,如果载入失败,在报错后继续执行后续语句;
    • include_once;
      • 只载入一次,如果载入失败,在报错后继续执行后续语句;
    • require;
      • 每次都载入文件,如果载入失败,在报错后终止程序;
    • require_once;
      • 只载入一次,如果载入失败,在报错后终止程序;

  • 错误分类
    • 语法错误:
      • 程序不能运行,是在运行之前,检查语法的时候,就发现语法出错,结果是提示错误,不运行程序。
    • 运行时错误
      • 语法检查没错,然后开始运行,在运行中出现了错误,然后报错。这是开发中最常见的错误。
    • 逻辑错误:
      • 程序能运行,且一直到结束没有报错,但执行得到的结果却是错的。
  • 常见错误代号
    • 含义
    • E_NOTICE
    • E_WARNING
    • E_ERROR
    • E_PARSE
    • E_USER_ERROR
    • E_USER_WARNING
    • E_USER_NOTICE
    • E_ALL

  • 错误触发
  • 错误显示设置
  • 错误日志设置
  • 自定义错误处理

转换为布尔值

要明确地将一个值转换成 boolean,用 或者 来强制转换。

但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制结构需要一个
boolean 参数时,该值会被自动转换。

当转换为 boolean 时,以下值被认为是 FALSE:

  • 布尔值 FALSE 本身
  • 整型值 0
  • 浮点型值 0.0
  • 空字符串,以及字符串 “0”
  • 不包括任何元素的数组
  • 特殊类型 NULL(包括尚未赋值的变量)
  • 从空标记生成的 SimpleXML 对象

-1 和其它非零值一样,被认为是 TRUE!

exit()

官网定义

输出一个消息并且退出当前脚本。

中止脚本的执行。 尽管调用了 exit(), Shutdown函数 以及 object
destructors 总是会被执行。

exit 是个语法结构,如果没有 status 参数要传入,可以省略圆括号。

Integer 整型

整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号。

<?php$a = 1234; // 十进制数$a = -123; // 负数$a = 0123; // 八进制数 $a = 0x1A; // 十六进制数 $a = 0b11111111; // 二进制数字 (等于十进制 255)?>
die()

官网定义

等同于exit();

常用于除了错误抛出错误信息

整数溢出

如果给定的一个数超出了 integer 的范围,将会被解释为 float。

同样如果执行的运算结果超出了 integer 范围,也会返回 float。

return

官网定义

如果在一个函数中调用 return
语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return
也会终止 eval() 语句或者脚本文件的执行。

如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被
include 的或者 require 的,则控制交回调用文件。此外,如果当前脚本是被
include 的,则 return 的值会被当作 include
调用的返回值。如果在主脚本文件中调用
return,则脚本中止运行。如果当前脚本文件是在 php.ini 中的配置选项
auto_prepend_file 或者 auto_append_file
所指定的,则此脚本文件中止运行。

布尔值转换成整型

FALSE 将产生出 0,TRUE 将产生出 1。

用法

浮点型转成整型

当从浮点数转换成整数时,将向下取整。

echo 3.12; # 输出3
基本用法

exit:

<?php$file = fopen($filename, 'r') or exit("unable to open file ($filename)");//exit program normallyexit;exit;//exit with an error codeexit;exit; //octal?>

return:常用于结束函数和返回一个函数返回值

<?php$_SESSION['text'] = 'Best PHP';function getText(){ $text = $_SESSION['text']; return $text; unset($_SESSION['text']);}echo getText().'<br />';echo $_SESSION['text'];?>

字符串转成整型

<?php$foo = 1 + "10.5";                // $foo is float $foo = 1 + "-1.3e3";              // $foo is float $foo = 1 + "bob-1.3e3";           // $foo is integer $foo = 1 + "bob3";                // $foo is integer $foo = 1 + "10 Small Pigs";       // $foo is integer $foo = 4 + "10.2 Little Piggies"; // $foo is float $foo = "10.0 pigs " + 1;          // $foo is float $foo = "10.0 pigs " + 1.0;        // $foo is float      ?>
特别注意

当某个php文件当中,第一层代码有return的存在,代码执行到此处就会结束掉该php文件的执行.

并且,该文件的return只会影响到自己,即便被导入也只会结束掉该文件.

而如果php文件的第一层代码有die的方法执行,如果被其他文件导入,执行到此处后,该文件和后续代码都不会执行.

测试代码如下

<?phpecho '这是第一句话<br>';include "2.php";echo '这是第二句话<br>';?><?phpecho '这是第三句话<br>';exit('程序已退出<br>');echo '这是第四句话<br>';?>输出结果:这是第一句话这是第三句话程序已退出

<?phpecho '这是第一句话<br>';include "2.php";echo '这是第二句话<br>';?><?phpecho '这是第三句话<br>';return;echo '这是第四句话<br>';?>输出结果:这是第一句话这是第三句话这是第二句话

由此可见exit()和return对php文件的影响.

Float 浮点型

浮点型(也叫浮点数 float,双精度数 double 或实数
real)可以用以下任一语法定义:

<?php$a = 1.234; $b = 1.2e3; $c = 7E-10;?>

基本

  • 每个php拥有各自的职能.
  • 数据库连接的PHP文件可以用require_once导入
  • 根据各自的需求设置

浮点数的精度

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。

echo floor((0.1+0.7)*10); # 输出7

代码块

JS指向指定的PHP文件,完成相应的工作.

<script type="text/javascript"> //定义JS删除函数 function confirmDel { // 询问是否要删除 if (window.confirm("你确定要删除吗?")) { //如果单击"确定",跳转到delete.php页面 location.href = "./delete.php?javascript:void" onclick="confirmDel( <?php echo $arr['id'] ?>)">删除</a>

循环读取数据库数据,输出html网页

澳门葡萄京官方网站 4PHP开发学习笔记_2.png

提交以后延迟跳转

澳门葡萄京官方网站 5PHP开发学习笔记_3.png

  • 测试代码&验证代码
    • print_r;
    • die();
  • 活用isset函数规避错误

本文仅对PHP基础进行了总结,目前正在进行PHP面向对象+MVC+项目实践的学习,这只是PHP的冰山一角.请等我后期的文章更新.

如果您对这篇文章有什么意见或者建议,请评论与我讨论.如果您觉得还不错的话~可以点个喜欢鼓励我哦.如果您想和我一起学习,请毫不吝啬的私信我吧~

欢迎关注我本人公众号,定期发布干货文章~

澳门葡萄京官方网站 6

String 字符串

一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。

这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。

string 最大可以达到 2GB。

4种方式表达

  • 单引号
  • 双引号
  • heredoc 语法结构
  • nowdoc 语法结构(自 PHP 5.3.0 起)

单引号

不像双引号和 heredoc
语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。

双引号

用双引号定义的字符串最重要的特征是变量会被解析。

转义字符 含义
n 换行(ASCII 字符集中的 LF 或 0x0A
r 回车(ASCII 字符集中的 CR 或 0x0D
t 水平制表符(ASCII 字符集中的 HT 或 0x09
v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (自 PHP 5.2.5 起)
e Escape(ASCII 字符集中的 ESC 或 0x1B (自 PHP 5.4.0 起)
f 换页(ASCII 字符集中的 FF 或 0x0C (自 PHP 5.2.5 起)
反斜线
$ 美元标记
" 双引号
[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符
x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符

heredoc类似于双引号可以解析变量

```php$name = 'Hello';echo <<<EOD里面的变量$name会解析。EOD;

nowdoc类似于单引号不会解析变量

$name = 'Hello';echo <<<'EOD'里面的变量$name不会解析。EOD;

转换成字符串

一个值可以通过在其前面加上 或用 strval() 函数来转变成字符串。

一个布尔值 boolean 的 TRUE 被转换成 string 的 “1”。Boolean 的 FALSE
被转换成 “”。

这种转换可以在 boolean 和 string 之间相互进行。

数组 array 总是转换成字符串 “Array”。

资源 resource 总会被转变成 “Resource id #1” 这种结构的字符串。

NULL 总是被转变成空字符串。

字符串转成数值

<?php$foo = 1 + "10.5";                // $foo is float $foo = 1 + "-1.3e3";              // $foo is float $foo = 1 + "bob-1.3e3";           // $foo is integer $foo = 1 + "bob3";                // $foo is integer $foo = 1 + "10 Small Pigs";       // $foo is integer $foo = 4 + "10.2 Little Piggies"; // $foo is float $foo = "10.0 pigs " + 1;          // $foo is float $foo = "10.0 pigs " + 1.0;        // $foo is float      ?>

Array数组

PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys
的类型。

定义数组 array()

可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键
=> 值对。

<?php$array = array(    "foo" => "bar",    "bar" => "foo",);// 自 PHP 5.4 起$array = [    "foo" => "bar",    "bar" => "foo",];?>

key 会有如下的强制转换

  • 包含有合法整型值的字符串会被转换为整型。例如键名 “8” 实际会被储存为
    8。但是 “08” 则不会强制转换,因为其不是一个合法的十进制数值。
  • 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7
    实际会被储存为 8。
  • 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false
    会被储存为 0。
  • Null 会被转换为空字符串,即键名 null 实际会被储存为 “”。
  • 数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset
    type。

数组类型

  • 数字索引数组
  • 关联数组

数组遍历

$arr = ['one'=>'First', 'two'=>'Second'];foreach ($arr as $key => $value){    echo '$key=' . "$key" . "<br>";    echo '$value=' . "$value" . "<br>";}

Object 对象

对象初始化

要创建一个新的对象 object,使用 new 语句实例化一个类:

<?phpclass foo{    function do_foo()    {        echo "Doing foo.";     }}$bar = new foo;$bar->do_foo();?>

转换为对象

如果将一个对象转换成对象,它将不会有任何变化。

如果其它任何类型的值被转换成对象,将会创建一个内置类 stdClass 的实例。

<?php$obj =  array('1' => 'foo');var_dump(isset($obj->{'1'})); // outputs 'bool'var_dump(key($obj)); // outputs 'int'?>

对于其他值,会包含进成员变量名 scalar。

<?php$obj =  'ciao';echo $obj->scalar;  // outputs 'ciao'?>

Resource 资源类型

资源 resource 是一种特殊变量,保存了到外部资源的一个引用。

资源是通过专门的函数来建立和使用的。

转换为资源

由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。

释放资源

PHP也有垃圾自动回收机制,可以自动检测到一个资源不再被引用了。

持久数据库连接比较特殊,它们不会被垃圾回收系统销毁。

NULL

特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。

在下列情况下一个变量被认为是 NULL

  • 被赋值为 NULL。
  • 尚未被赋值。
  • 被 unset()。

转换到 NULL

使用 $var 将一个变量转换为 null 将不会删除该变量或 unset 其值。仅是返回
NULL 值而已。

mixed

mixed 说明一个参数可以接受多种不同的类型。

例如 gettype() 可以接受所有的 PHP 类型,str_replace()
可以接受字符串和数组。

number

number 说明一个参数可以是 integer 或者 float。

array|object

array|object 意思是参数既可以是 array 也可以是 object。

void

void 作为返回类型意味着函数的返回值是无用的。

void 作为参数列表意味着函数不接受任何参数。

php如何声明定义数组

  • 索引数组

默认下标或带有数字索引的数组

  • 关联数组

键名不为纯数字带有指定值如标识符的数组

  • 有关键值的说明

键可以是一个整数integer或字符串string

值可以是任意类型的值

  • 直接为元素赋值

$myarr['Q'] = "Q";$myarr[] = "A";$myarr[] = "B";$myarr[2] = "B";print_r($myarr);#在php中数据可以动态改变长度。并且会默认按下标进行赋值。
  • 使用array函数进行赋值

#一维数组$myarr = array("A","B","C");foreach($myarr as $key => $value){    echo "key=".$key;    echo "value=".$value;    echo "";}#多维数组,递归输出数组值function myfun(array $myarr){    foreach($myarr as $key => $value){        if(is_array($value)){            myfun($value);        }else{            echo "key=".$key;            echo "value=".$value;            echo "";        }    }}$myarr = array("A"=>array("1"=>array("a","b","c"),"2","3"),"B","C");echo myfun($myarr)."维数组";

php如何调用数组方法

  • array_keys()返回数组中所有的键名

$myarr = array("A","B","C");print_r(array_keys($myarr));
  • array_values()返回数组中所有的值

$myarr = array("A","B","C");print_r(array_values($myarr));

php如何对数组查、增、改、删

  • 查array_search()数组值查找

#返回查找到的元素下标$myarr = array("A","B","C");echo array_search("B",$myarr);
  • 增array_push()队尾添加数据

#返回增加后数组的大小$myarr = array("A","B","C");echo array_push($myarr,"D");print_r($myarr);
  • 改array_chunk()一维转多维

$myarr = array("A","B","C");$myarr = array_chunk($myarr,2,true);print_r($myarr);
  • 删array_unique()

#返回删除重复元素后的数组$myarr = array("A","B","C","B");print_r(array_unique($myarr));#unset无返回值$myarr = array("A","B","C");unset($myarr[2]);
  • 合并array_merge()

$myarr1 = array("one","two");$myarr2 = array("three","four");$myarr3 = array_merge($myarr1, $myarr2);print_r($myarr3);  

php如何进行数据类型转换

  • 类C强制转换

#第一种转换方式:          2.$num1=3.14;3.$num2=$num1;4.var_dump($num1); //输出float5.var_dump($num2); //输出int
  • 获取变量整数、浮点、字符串值

#第二种转换方式:  intval()  floatval()  strval()2.$str="123.9abc";3.$int=intval($str);     //转换后数值:1234.$float=floatval($str); //转换后数值:123.95.$str=strval($float);   //转换后字符串:"123.9"
  • 使用settype()封装函数

#bool settype ( mixed &$var , string $type )type 的可能值为:“boolean” (或为“bool”,从 PHP 4.2.0 起)“integer” (或为“int”,从 PHP 4.2.0 起)“float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用)"string""array""object"“null” (从 PHP 4.2.0 起)2.$num4=12.8;3.$flg=settype($num4,"int");4.var_dump($flg);  //输出bool5.var_dump($num4); //输出int

php如何处理进制转换

  • 十进制转二进制decbin()

echo decbin(12); //输出 1100
  • 十进制转八进制 decoct()

echo decoct(15); //输出 17
  • 十进制转十六进制 dechex()

echo dechex(10); //输出 a
  • 二进制转十六制进 bin2hex()

$binary = "11111001";$hex = dechex(bindec($binary));echo $hex;//输出f9
  • 二进制转十制进 bindec()

echo bindec('110011'); //输出 51
  • 八进制转十进制 octdec()

echo octdec('77'); //输出 63
  • 十六进制转十进制 hexdec()

echo hexdec("F"); //输出 15
  • 任意进制转换 base_convert()

$hexadecimal = 'A37334';echo base_convert($hexadecimal, 16, 2);//输出 101000110111001100110100

php如何处理优先级的问题

运算符优先级指定了两个表达式绑定得有多”紧密”。可以使用括号来强制改变优先级。

如果运算符优先级相同,则使用从左到右的左联顺序。

澳门葡萄京官方网站 7

自加、自减、三目运算符

#自加$a=10;echo $a++; //先用再加,最后结果为10echo ++$a; //先加再用,最后结果为11$a = 10;$b = $a+ ++++$a;echo $a; //结果为12echo "";echo $b; //结果为22#结合性导致的问题(++的优先级比+的高,且为右结合)

衿华客

php 教程

  1. PHP简介
  2. PHP安装
  3. PHP语法
  4. PHP数据类型
  5. PHP变量
  6. PHP运算符
  7. PHP流程控制
  8. PHP函数
  9. PHP类与对象
  10. PHP字符串
  11. PHP正则表达示
  12. PHP文件
  13. PHP图形图像
  14. PHPXML
  15. PHP会话缓存
  16. PHP异常处理
  17. PHP数据库
  18. PHP日期时间戳
  19. PHP代码风格规范

server 环境

  1. ubuntu入门
  2. docker入门
  3. git入门
  4. iterm入门

frame 框架

  1. laravel入门
  2. dingo入门
  3. JWT入门
  4. Laravel框架关键技术解析
  5. laravel则修笔记
  6. rpc入门
  7. rabbitmq入门
  8. opencc多国语言
  9. laravel兄弟连笔记
  10. laravel进阶

case 实例

  1. php面试题笔记
  2. python图标提取
  3. 字幕乱码问题
  4. 支付宝接口调用
  5. laravel开发笔记

db 数据库

  1. elasticsearch入门
  2. 数据库操作
  3. 数据库设计
  4. redis入门

help

  • 帮助文档
  • 流程图帮助文档