php入门 数据类型 运算符 语言结构语句 函数 类与面向对象
php
PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them the same way you normally create regular HTML pages.(像html一样被编辑)
PHP 能够生成动态页面内容
PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
PHP 能够接收表单数据
PHP 能够发送并取回 cookies
PHP 能够添加、删除、修改数据库中的数据
PHP 能够限制用户访问网站中的某些页面
PHP 能够对数据进行加密
require() include() require_once() include_once()
超全局变量
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
PHP数据类型
数据类型之变量
四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
当双引号中包含变量(即有$符号时)时,变量会与双引号中的内容连接在一起;
当单引号中包含变量时,变量会被当做字符串输出。
heredoc技术是php用来引用字符串的一种方式
两种复合类型:
array (数组)
php有两种数组:索引数组,关联数组。
object (对象)
两种特殊类型:
resource (资源)
资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。
NULL (NULL)
表示一个变量没有值,1 当被赋值为NULL,2 或者尚未被赋值,3 或者被unset()
数据类型之常量
变量
它通过使用PHP中的函数define()定义。
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
系统常量
系统常量是PHP已经定义好的常量,我们可以直接拿来使用
常用的系统常量
__FILE__ 当前PHP文件名
__LINE__ 当前PHP文件中所在的行数
__FUNCTION__ 当前所执行的函数
__CLASS__ 当前所执行的类
PHP_VERSION PHP的版本
PHP_OS 当前服务器的操作系统
使用常量
1 使用常量名直接获取值
2 第二种是使用constant()函数
判断常量是否已经定义
defined()函数
bool defined(string constants_name)
运算符
PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错误控制运算符。
算术运算符
加,减,乘,除,取余
+ , - , * , / ,%
赋值运算符
= 把右边表达式的值赋给左边的运算数
& 引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
比较运算符
三元运算符
(expr1)?(expr2):(expr3)
逻辑运算符
and 与
&& 与
|| 或
or 或
! 非
xor 异或(一个为true则为true)
字符串拼接运算符
(1)连接运算符(“.”)
(2)连接赋值运算符(“.=”)
错误控制运算符
语言结构语句
顺序结构
默认执行顺序,一行接着一行
条件结构 之if…else… if...else if... if...else if...else..
条件结构之switch…case…
break的作用是阻止代码进入下一个case 中继续执行。
循环结构之while循环语句
while(条件 ){
}
do{
}while(条件 )
循环结构之for循环语句
循环结构之foreach循环语句
一般有两种使用方式:不取下标、取下标。
(1)只取值,不取下标
<?php
foreach (数组 as 值){
//执行的任务
}
?>
(2)同时取下标和值
<?php
foreach (数组 as 下标 => 值){
//执行的任务
}
?>
函数
PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言。
自定义函数
PHP函数的定义方式:
1.使用关键字“function
”开始
2.函数名可以是字母或下划线开头:function name()
3.在大括号中编写函数体:
函数返回值
使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL。
可变函数
内置函数
PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、session与cookie处理等。
判断函数是否存在
经常会先使用function_exists判断一下函数是否存在。
同样的method_exists可以用来检测类的方法是否存在。
类是否定义可以使用class_exists。
文件是否存在file_exists
类与面向对象
类和对象
通常定义一个汽车类的方法为:
class Car {
$name = '汽车';
function getName() {
return $this->name;
}
}
创建一个类的实例,可以使用new关键字创建一个对象
类的属性
属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。
public 外部可以调用
protected 受保护的,受保护的属性不允许外部调用
private 私有的,不允许外部调用
class Car {
//定义公共属性
public $name = '汽车'; //定义受保护的属性
protected $corlor = '白色'; //定义私有属性
private $price = '100000';
}
一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。
类的方法
在面向过程的程序设计中function叫做函数,在面向对象中function则被称之为方法。
同属性一样,类的方法也具有public,protected 以及 private 的访问控制。
使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号::。
构造函数和析构函数
_construct() _destruct()
static静态关键字
静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名
的方式进行调用。静态属性不允许对象使用->操作符调用。
静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。
访问控制
类属性必须定义为公有、受保护、私有之一。
被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。
对象继承
重载
PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
对象的高级特性
字符串操作
字符串
通过下面的3种方法来定义:
1、单引号
2、双引号
3、heredoc语法结构
去除字符串首尾空格
trim() 去除一个字符串两端空格
rtrim() 去除一个字符串右部空格
ltrim() 去除一个字符串左部空格
获取字符串长度
strlen()
md_strlen() // 获取字符串(中文)的长度
字符串截取
substr()
substr(字符串变量,开始截取的位置,截取个数) // 英文
mb_substr()
mb_substr(字符串变量,开始截取的位置,截取个数, 网页编码) // 中文
查找字符串
strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])
替换字符串
str_replace(要查找的字符串, 要替换的字符串, 被搜索的字符串, 替换进行计数[可选])
php入门 数据类型 运算符 语言结构语句 函数 类与面向对象的更多相关文章
- (转)PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...
- PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...
- PHP5实现foreach语言结构遍历一个类的实例
PHP5实现foreach语言结构遍历一个类 创建一个类集成Iterator接口,并实现Iterator里面的方法即可,下面见实例代码实现 <?php class Test implements ...
- c++入门之—运算符重载和友元函数
运算符重载的意义是:将常见的运算符重载出其他的含义:比如将*重载出指针的含义,将<<与cout联合使用重载出输出的含义,但需要认识到的问题是:运算符的重载:本质仍然是成员函数,即你可以认为 ...
- (五)羽夏看C语言——结构体与类
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- 飞控入门之C语言结构体、枚举
结构体 先来说明一下,结构体存在的意义.比如说有一只猫,要在C语言程序中综合描述它,那么可以这样说,它的体重是float类型的,颜色是char类型的,它的一些食物名字是一个数组,那么如果分开定义这些变 ...
- PHP学习(语言结构语句)
switch case语句 for循环语句: foreach循环语句 常用于遍历数组,一般有两种使用方式:不取下标.取下标. (1)只取值,不取下标 <?php foreach (数组 as 值 ...
- PHP:函数和语言结构(转)
转自:https://www.cnblogs.com/fanqiechaodan/articles/5222366.html 什么是语言结构呢?它和函数有什么不同吗? 1. 什么是语言结构和函数 语 ...
- PHP 语言结构(Language constructs)和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($username[5]) ) { // The ...
随机推荐
- php提供service总结---wsdl篇
越来越多的架构偏向于面向接口和面向服务的设计了,当我们把抽象的落地变为实际的时候,我们感觉到了代码的厚度.而当我们把具体的业务再进一步抽象,我们就能发现藏在细节深处的回馈. php可以提供servic ...
- OpenCV环境搭建
前言 我在上本科时候曾经用过opencv,那时候还是1.x版本,还必须在linux下自己编译. 时过境迁,最近突然想起来写个小程序来分析图片,就又想起了opencv.现在已然是2.4的版本. 环境搭建 ...
- 个人PE流程备忘
insmod memdisk linux16 /boot/memdisk iso raw initrd16 /iso/Win8PE.iso
- CodeForces 631D Messenger
$KMP$. $n=1$和$n=2$的时候可以单独计算.$n>2$时,可以拿字符和数字分别做一次匹配,然后扫描一遍判断一下就可以计算出答案了. #pragma comment(linker, & ...
- CodeForces 632D Longest Subsequence
暴力. 虽然$a[i]$最大有${10^9}$,但是$m$最大只有${10^6}$,因此可以考虑暴力. 记$cnt[i]$表示数字$i$有$cnt[i]$个,记$p[i]$表示以$i$为倍数的情况下, ...
- openstack私有云布署实践【8.2 身份认证keystone的API创建(办公网环境)】
其中一台controller上面加入环境变量,我选controller1,关注的是endpoint的名称不一样,其它创建的参数与生产环境一致 export OS_TOKEN=venicchina ex ...
- WPF wpf scrollviewer 触屏滚动 窗体弹跳
触屏滚动实现 设置属性 在ScrollViewer的xaml代码那里加上 PanningMode="Both" 在ScrollViewer的xaml代码那里加上 Manipula ...
- trove design翻译
trove的设计 高水平的描述 trove的目的是支持单租户数据库,在一个nova的实例中.没有限制nova是如何配置的,因为trove与其他OpenStack组件纯粹通过API. Trove-api ...
- gridcontrol如何根据值来动态设置某一行的颜色
应用场景:当我们使用devexpress gridcontrol wpf控件时.可要会要根据这一行要显示的值来设置相应的颜色 可以通过下面方法来实现 一.先定义一个style <local:Co ...
- Time.timeScale、游戏暂停
原文链接 项目里面一直在用Time.timeScale来做游戏的 1倍 2倍整体加速,今天我仔细看了一下Time.timeScale才发现之前我理解错了一些东西. Time.timeScale可以控制 ...