了解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学习—了解篇的更多相关文章

  1. [Django]模型学习记录篇--基础

    模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...

  2. JDK源码学习--String篇(二) 关于String采用final修饰的思考

    JDK源码学习String篇中,有一处错误,String类用final[不能被改变的]修饰,而我却写成静态的,感谢CTO-淼淼的指正. 风一样的码农提出的String为何采用final的设计,阅读JD ...

  3. LINQ to XML LINQ学习第一篇

    LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...

  4. Entity Framework 学习中级篇1—EF支持复杂类型的实现

    本节,将介绍如何手动构造复杂类型(ComplexType)以及复杂类型的简单操作. 通常,复杂类型是指那些由几个简单的类型组合而成的类型.比如:一张Customer表,其中有FristName和Las ...

  5. 从.Net到Java学习第二篇——IDEA and start spring boot

    从.Net到Java学习第一篇——开篇 所谓工欲善其事,必先利其器,做java开发也一样,在比较了目前最流行的几个java IDE(eclipse,myeclipse.IDEA)之后,我果断选择IDE ...

  6. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  7. Sublime text 入门学习资源篇及其基本使用方法

    Sublime text 学习资源篇 史上最性感的编辑器-sublimetext,插件, 学习资源 官网 http://www.sublimetext.com/ 插件 https://packagec ...

  8. Entity Framework学习初级篇2

    Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager类的介绍 本节,简单的介绍E ...

  9. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  10. Sublime Text:学习资源篇

    官网 http://www.sublimetext.com/ 插件 https://packagecontrol.io 教程 Sublime Text 全程指南 Sublime Text 2 入门及技 ...

随机推荐

  1. 第二章: Java总结

    第二章笔记 什么是变量:变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样.#在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据.说白了,变量就是代表程序运行时存放 ...

  2. Java 第四章

    switch选择结构 语法:switch(表达式){ case 常量 1: //代码块1:   break:  case 常量 2: //代码块2: break:    ......  default ...

  3. 原创:用node.js搭建本地服务模拟接口访问实现数据模拟

    前端开发中,数据模拟是必要的,这样就能等后台接口写完,我们直接把接口请求的url地址从本地数据模拟url换成后台真实地址就完成项目了.传参之类的都不用动. 之前网上找了很多类似于mock等感觉都不太实 ...

  4. vue教程二 vue组件(2)

    每个组件都可以有自己的data.methods.computed和您之前看到的所有内容—就像Vue实例本身一样. 您可能已经注意到了组件和Vue实例之间的一个细微差别:Vue实例上的数据属性是一个对象 ...

  5. 安装使用xen虚拟化工具

    换了一家新公司,需要拿出一套虚拟化方案,就把业界的主流虚拟化技术划拉了一遍,给领导交了一份报告,具体的技术部分已经在之前的随笔里了,本篇文章主要介绍的是xen虚拟化工具的安装: Xen官方部署文档:h ...

  6. 实用小工具推荐 OpenWrite

    [实用小工具推荐]给技术同学们推荐一款比较好用的工具,可以实现一稿多发,主流的技术渠道基本涵盖了:https://www.openwrite.cn/ 因为工作的关系,认识了很多做技术公众号的小伙伴,同 ...

  7. hdoj 4712 Hamming Distance(靠人品过的)

    我先解释一下汉明距离  以下来自百度百科 在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的字符不同的个数.换句话说,它就是将 一个字符串变换成另外一个字符串所需要替换的字符个数. 例如: ...

  8. maven添加oracle驱动包

    问题描述 项目用到了oracle,但由于oracle商业版权问题,maven在中心资源库直接下载jar包是要收费的 解决方法 第一步: 下载ojdbc6.jar 第二步: 将下载的jar放入项目的li ...

  9. 常用css选择器以及选择器的权重值介绍

    一.选择器的权重值 选择器权重值比较: !important infinity   无穷大 行间样式                   1000 id                        ...

  10. 极力推荐一个简单好用的C++JSON库

      极力推荐一个简单好用的C++JSON库CJsonObject,让使用json如使用C++原生的结构体那般方便,随心所欲.CJsonObject是个优秀的C++JSON库,也许会是你见过的最为简单易 ...