PHP学习—了解篇
了解PHP
- 了解神器:PhpStudy 一键搭建PHP环境
语法:
PHP是一种可以嵌套在HTML页面的脚本语言
嵌套HTML文件:
<!DOCTYPE html>
<html>
<head>
<title>PHP</title>
</head>
<body>
<?php
// php代码;
?>
</body>
</html>
PHP同时也可以以 “*.php” 文件单独保存和被访问,但是在php文件中,也必须以 “< ? " 开头, ”?>”结束!php代码只会在这里被执行和解析
PHP对大小写敏感识别
PHP支持目前主流的三种注释:双斜杠,“#”号,多行注释
变量:
变量规则:
变量以$符号开头
变量名必须字母或下划线开头,由数字、字母、下划线组成变量名
PHP没有创建变量名的命令,变量赋值的过程就是创建的过程
作用域:
local(局部):只允许自己语法结构的语句访问(函数内部声明)
global(全局):允许当前PHP程序中所有的语法结构内的语句访问(函数之外声明)
全局变量访问:
global关键字用于在函数内访问全局变量,在内部函数中访问全局变量必须在访问前使用global关键字。
<?php
$x = 5 ;
$y = 10 ;
function myTest(){
global $x , $y ;
$y = $x + $y ;
}
myTest();
echo $y ;
?>
static(静态):变量执行的结果,下一回合不复位
静态访问:
在变量声明时,添加static声明,就可以在多次访问该变量而变量的变化不复位
<?php
function myTest(){
static $x = 0 ;
echo $x ;
$x ++ ;
}
myTest();
myTest();
myTest();
?>
输出:
echo输出:
- 可以输出一个以上的字符串
<?php
echo '<p>Hello,World!</p>';
?>
print输出:
数据类型:
字符串:
- 字符串是字符序列,引号内的文本都属于字符串
整数:
- 没有小数的数字组合(包括负数)
浮点数:
- 不是整数的所有数字组合,以及科学计数
布尔逻辑数:
- true和false
数组:
一个变量中存储一个或多个值
数组创建使用关键字“array”
<?php
$cars = array ("HUAWEI","China","GO!")s
var_dump($cars);//返回数组的类型和值
?>
// 运行结果
// “array(3) { [0]=> string(6) "HUAWEI" [1]=> string(5) "China" [2]=> string(3) "GO!" }”
关键字:var_dump 返回数组的大小,每一个参数值的数据类型等信息
对象:
使用 “class” 关键字声明对象数据类型
<?php
class Car {
var $color ;
function Car($color = "green") {
$this -> color = $color;
}
function what_color(){
return $this->color;
}
}
?>
NULL值:
- 表示变量为空值(将值设置为null,代表清空变量值)
判断数据类型:
var_dump():
打印变量的类型和值
语法:void var_dump(mixed $expression)
无返回值
iS函数:
- is_bool():判断是否为布尔值
- is_float():判断是否为浮点型
- is_int():判断是否为整型
- is_numeric():判断是否为数值型
- is_string():判断是否为字符串
- is_array():判断是否为数组
- is_object():判断是否为对象
- is_null():判断是否为空
- is_resource():判断是否为资源类型
isset():
- 检查变量是否存在
- 返回:变量存在返回 true
empty():
- 检查变量是否为空(isset()只可以检测是否存在)
- 返回:变量存在且非空 返回false(var = null 才认为是空)
PHP系统常量:
系统常量 | 说明 |
---|---|
__ FILE __ | PHP程序文件名 |
__ LINE __ | PHP程序当前行号 |
PHP_VERSION | PHP程序版本号 |
PHP_OS | 操作系统名称 |
TRUE | 真 |
FALSE | 假 |
E_ERROR | 最近的错误 |
E_WARNING | 最近的警告 |
E_PARSE | 解析语法潜在问题 |
E_NOTICE | 不正常的错误 |
运算符:
算术运算符:
// + - * / % ++ --
加 减 乘 除 模 自加 自减
字符串运算符:
字符串连接符: .(点)
连接等于:. = (点 等于)
赋值运算符:
赋值: =
减等: -=
加等: +=
乘等:*=
除等:/=
取余等:%=
比较运算符:
大于、小于、大于等于、小于等于、等于、不等于
全等于:===
不全等:! ==
逻辑运算符:
逻辑与: and &&
逻辑或: or ||
逻辑非: not !
三元运算符:
条件运算符: ?:
错误抑制操作符:
符号: @
在可能会产生错误的语句前使用,可以抑制报错
命令执行操作符:
符号:*
(反单引号) 》和 ~ 在同一个键位
该操作符可以在OS上直接执行操作命令(echo输出命令后才可以在系统上执行)
控制结构:
if分支条件:
略
Switch条件语句:
略
While循环:
略
do…while循环:
略
for循环:
略
控制函数:
略(break/continue)
数值的传递:*
赋值传递:(两个都不同的内存地址)
$a = $b ;
引用赋值:(两个变量同一个地址)
$a = &$b ;
数组:
数组类型:
- 枚举数组:索引下标为整数
- 关联数组:索引下标为字符串
- 多维数组:数组元素是数组
创建数组:
关键字:array() 创建数组
标识符:
- $arr[key] = value ;
- $arr[] = value ;
数组函数:
print_r():打印变量信息
unset():删除数组元素
foreach():遍历数组元素
array_shift():
- 将数组的第一个单元格移出并作为结果返回
array_pop():
- 将数组的最后一个单元元素移出并返回
array_unshift():
- 在数组最前面插入一个或多个元素
array_push():
- 在数组的尾部插入一个或多个元素
array_values():
- 返回数组中所有的值并建立数字索引
count():计算数值属性个数
array_sum():计算数值的和
array_reverse():返回一个反转数组
list():将数组元素赋值给变量
<?php
$IntArray = array(2,5,9,13,7,9,21,7,9,24,38) ;
$MAX = $IntArray[0];
$MIN = $IntArray[0];
$MAX_i = $MIN_i = 0;
for ($i=0; $i < count($IntArray) ; $i++) {
if ($MAX < $IntArray[$i]) {
$MAX = $IntArray[$i] ;
$MAX_i = $i ;
}
if ($MIN > $IntArray[$i]) {
$MIN = $IntArray[$i] ;
$MIN_i = $i ;
}
}
echo "Array_MAX:".$MAX."<br />MAX_i=".$MAX_i ;
echo "<br /><br />";
echo "Array_MIN:".$MIN."<br />MIN_i=".$MIN_i ;
echo "<hr />";
// 位置交换
echo "位置交换前:".print_r($IntArray) ;
$M = $IntArray[$MIN_i] ;
$IntArray[$MIN_i] = $IntArray[$MAX_i] ;
$IntArray[$MAX_i] = $M ;
echo "<br />";
echo "位置交换后:".print_r($IntArray) ;
echo "<hr />";
// 反转数组
echo print_r(array_reverse($IntArray));
?>
超全局变量:
元素/代码 | 描述 |
---|---|
$_SERVER['PHP_SELF'] | 返回当前执行脚本的文件名。 |
$_SERVER['GATEWAY_INTERFACE'] | 返回服务器使用的 CGI 规范的版本。 |
$_SERVER['SERVER_ADDR'] | 返回当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] | 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。 |
$_SERVER['SERVER_SOFTWARE'] | 返回服务器标识字符串(比如 Apache/2.2.24)。 |
$_SERVER['SERVER_PROTOCOL'] | 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 |
$_SERVER['REQUEST_METHOD'] | 返回访问页面使用的请求方法(例如 POST)。 |
$_SERVER['REQUEST_TIME'] | 返回请求开始时的时间戳(例如 1577687494)。 |
$_SERVER['QUERY_STRING'] | 返回查询字符串,如果是通过查询字符串访问此页面。 |
$_SERVER['HTTP_ACCEPT'] | 返回来自当前请求的请求头。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) |
$_SERVER['HTTP_HOST'] | 返回来自当前请求的 Host 头。 |
$_SERVER['HTTP_REFERER'] | 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。 |
$_SERVER['HTTPS'] | 是否通过安全 HTTP 协议查询脚本。 |
$_SERVER['REMOTE_ADDR'] | 返回浏览当前页面的用户的 IP 地址。 |
$_SERVER['REMOTE_HOST'] | 返回浏览当前页面的用户的主机名。 |
$_SERVER['REMOTE_PORT'] | 返回用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER['SCRIPT_FILENAME'] | 返回当前执行脚本的绝对路径。 |
$_SERVER['SERVER_ADMIN'] | 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。 |
$_SERVER['SERVER_PORT'] | Web 服务器使用的端口。默认值为 “80”。 |
$_SERVER['SERVER_SIGNATURE'] | 返回服务器版本和虚拟主机名。 |
$_SERVER['PATH_TRANSLATED'] | 当前脚本所在文件系统(非文档根目录)的基本路径。 |
$_SERVER['SCRIPT_NAME'] | 返回当前脚本的路径。 |
$_SERVER['SCRIPT_URI'] | 返回当前页面的 URI。 |
函数:
- 关键字:function name() { …… }
函数参数:
值传递参数:
在函数调用的时候,允许传递参数值给函数,函数可以自由使用参数进行操作
引用传递参数:
如果希望函数可以修改参数值,可以使用引用参数进行传递
引用传递,只需要在参数前加上 “&” 符号就可以
$arr = array(1,2,3,4);
function addElement(&$arr){
$arr[count($arr)] = 100;
print_r($arr); //在函数内输出$arr
}
addElement($arr);
print_r($arr); //在函数外输出
默认值传递:
function hobby($who,$style=‘运动’){
echo “$who 喜欢 $style”;
}
hobby(“张三”,“唱歌”);
hobby(“张三”);
global关键字:
引用函数外部的参数(引用传递性质的参数)
$name = "Mary";//初始化变量
function getName(){
global $name; //引入外部的变量
echo "我的名字叫:$name";
}
getName();
内置函数:
echo语句:输出
print语句:输出
include语句:包含并运行指定文件
require语句:包含并运行指定文件
PHP学习—了解篇的更多相关文章
- [Django]模型学习记录篇--基础
模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...
- JDK源码学习--String篇(二) 关于String采用final修饰的思考
JDK源码学习String篇中,有一处错误,String类用final[不能被改变的]修饰,而我却写成静态的,感谢CTO-淼淼的指正. 风一样的码农提出的String为何采用final的设计,阅读JD ...
- LINQ to XML LINQ学习第一篇
LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...
- Entity Framework 学习中级篇1—EF支持复杂类型的实现
本节,将介绍如何手动构造复杂类型(ComplexType)以及复杂类型的简单操作. 通常,复杂类型是指那些由几个简单的类型组合而成的类型.比如:一张Customer表,其中有FristName和Las ...
- 从.Net到Java学习第二篇——IDEA and start spring boot
从.Net到Java学习第一篇——开篇 所谓工欲善其事,必先利其器,做java开发也一样,在比较了目前最流行的几个java IDE(eclipse,myeclipse.IDEA)之后,我果断选择IDE ...
- 从.Net到Java学习第一篇——开篇
以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...
- Sublime text 入门学习资源篇及其基本使用方法
Sublime text 学习资源篇 史上最性感的编辑器-sublimetext,插件, 学习资源 官网 http://www.sublimetext.com/ 插件 https://packagec ...
- Entity Framework学习初级篇2
Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager类的介绍 本节,简单的介绍E ...
- Docker虚拟化实战学习——基础篇(转)
Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...
- Sublime Text:学习资源篇
官网 http://www.sublimetext.com/ 插件 https://packagecontrol.io 教程 Sublime Text 全程指南 Sublime Text 2 入门及技 ...
随机推荐
- Java NIO DirectByteBuffer 的使用与研究
一.结论 DirectByteBuffer 与 ByteBuffer 最大区别就在于缓冲区内存管理的方式.ByteBuffer使用的是堆内存,DirectByteBuffer 使用的是堆外内存,堆外内 ...
- 我是这样一步步理解--主题模型(Topic Model)、LDA
1. LDA模型是什么 LDA可以分为以下5个步骤: 一个函数:gamma函数. 四个分布:二项分布.多项分布.beta分布.Dirichlet分布. 一个概念和一个理念:共轭先验和贝叶斯框架. 两个 ...
- TestNG中@Factory的用法一:简单的数据驱动
为什么要使用@Factory注解呢,先来看下面这个例子 被测试类Person package ngtest; import org.testng.annotations.Parameters; imp ...
- win10安装.NET Framework 3.5方法
win10下默认没有.NET Framework 3.5,但是有时候我们运行一些网络相关的软件要用到它,下面是它的具体安装方法(绝对可以成功) 将系统镜像挂载到虚拟光驱 复制虚拟光驱下的\source ...
- SpringBoot入门(二):日志及自定义属性
这一章主要说springboot中日志的配置.自定义属性的配置与读取.分环境的yml配置文件(如本地环境.测试环境.生产环境等).比较偏向实际开发,较为实用,前面一章的一些基本创建在这里就不多废话了. ...
- 标签助手(TagHelper)
1.什么是标签助手 Tag Helper 标签助手是服务端代码能够参与在 Razor 文件中创建和呈现HTML元素.例如,内置的 ImageTagHelper 可以将版本号追加到图像名称.无论何时更改 ...
- python基础--基于套接字进行文件传输、异常处理、socketserver模块
异常处理: 什么是异常处理: 程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来,造成的影响就是整个程序无法再正常运行 异常的结构: 异常的类型.异常的信 ...
- SpringBoot学习系列之一(反射)
最近在学习SpringBoot的知识,动起手来学习的时候才发现SpringBoot项目采用了大量的反射机制,晕,作为一个应届毕业生,以前学习反射的时候给我的感觉就是,这个到底用来干嘛的,好像没啥用啊, ...
- Vue系列:Slot 插槽的使用范例
插槽对于自定义的组件开发来说,是十分强大的功能.这篇主要做个简单梳理 插槽可以分3种: 1.简单插槽 2.具名插槽 3.作用域插槽
- PCA(主成分分析)原理,步骤详解以及应用
主成分分析(PCA, Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维处理 通过降维,可以发现更便于人类理解的特征 其他应用:数据可视化,去噪等 ...