PHP相关

PHP简介

PHP超文本预处理器。是嵌入HTML文件中的服务器端脚本程序。换句话:PHP只能运行在服务器上。

一个HTML文件中,可以包含的代码:HTML代码、CSS代码、JS代码、PHP代码等。

PHP的主要功能:web应用开发(线上产品)。

PHP入门比较简单,语法与C、Java、C#、JS等相似。

PHP主要用函数做各种操作,而JS主要用内置对象作操作。

PHP语言基础

l  PHP代码,跟ASP一样,都是嵌入到HTML文件中去的。

l  PHP代码标记:<?php …… ?>

l  PHP文件的扩展名:.php

l  PHP文件的执行,必须从域名开始访问(必须要经过虚拟主机)。

l  访问PHP文件的路径上,不能包含空格和中文。

l  PHP也是区分大小写,但关键字和函数名不区分大小写。

l  PHP中每条语句,必须以英文下的分号结束(;)。

PHP注释

l  HTML注释:<!—注释内容 -->

l  CSS注释:/*  */

l  JS注释://或/*   */

注意的功能:是为以后修改项目时,找问题非常方便。

l  PHP的单行注释://或#

l  PHP的多行注释:/*  */

l  提示:多行注释不能相互嵌套。

l  注意:PHP的注释,与代码一样,最终在客户端都是不可见。

PHP变量

1、变量的概念

变量是临时存储数据的容器。

2、变量的命名规则

l  变量名可以包含:a-z、A-Z、0-9、_(下划线)。

l  变量名不能以数字开头。

l  变量名可以以字母或下划线开头。

l  PHP的变量前,必须以“$”符号开头,但不是变量名的一部分。如:$name、$age

l  对长文件名,如何命名呢?

u  “驼峰式命名”:$getUserName、$getUserPassword

u  “下划线式命名”:$get_user_name、$get_user_pwd

3、写程序的一般思路

l  变量初始化

l  项目运行的过程。

l  输出结果。

4、变量赋值

使用“=”将右边的运算结果,赋给左边的变量名。换句话说:将“=”右边的数据,装到左边容器中。

$name = “abc”;

$name = 100 + 200;

       $name+10 = 100; (错误的写法)

PHP变量的数据类型

提示:变量本身没有类型之分,变量的数据才有类型之分。

JS中变量的数据类型:

l  基本数据类型(只有一个值):字符型、数值型、布尔型、NULL、undefined

l  复合数据类型(可能有多个值):数组、对象、函数。

PHP中变量的数据类型:

l  标量数据类型:字符串型、整型、浮点型、布尔型

l  复合数据类型:数组、对象

l  特殊数据类型:资源、NULL

1、整型

整型的取值范围:-21亿~21亿

2、浮点型(小数:有限小数、无限小数)

浮点型取值范围:-1.7E-308~1.7E+308

举例:9E3 => 9*10^3 = 9000

3、字符串型

字符串的表示方法有三种:

(1)用单引号

单引号内的转义字符,只能是:\\、\’

<?php
  //用单引号表示字符串
  $str =‘自挂\‘东南\\枝‘;
  echo $str;
?>

(2)用双引号

双引号内,所有的转义字符都能使用。如:\\、\’、\”、\$、\n、\r、\t

(3)长字符串的表示方法

l  长字符串表示,必须放在“<<<heredoc”和 “heredoc;”之间。

l  “<<<heredoc”必须是开头的标记。

l  “heredoc;”必须是结束的标记。必须是单独一行,并且顶头写。

l  heredoc可以自定义名称。

l  可以直接解析PHP变量。

//长字符串的表示方法
$name = "林长生";
$edu="北京理工大学";
$str = <<<heredoc
<p onMouseOver="pOver(this)" onMouseOut="pOut(this)">
1.tornado
2.Python 和Ruby,scala
3.semantic UI 和 Element UI
4.app hybrid开发
5.backbone
6.Grunt,Gulp
7.Ember.js ,chart.js,undescore.js
8.typescript
9.RESTful service
浏览器兼容问题
解决人: {$name} 来自: {$edu}
</p>
<script type="text/javascript">
function pOver(pObj){
    pObj.style.backgroundColor="skyblue";
}
function pOut(pObj){
    pObj.style.backgroundColor="";
}
</script>
heredoc;
echo $str;

(4)字符串的注意事项

l  在双引号内,输出是变量的值。如:echo “{$name}的年龄是24岁”

l  在单引号内,输出的是变量的名称,而不是值。

l  在双引号内,如果一个变量名后跟一个非空字符,则会让编译器糊涂。这种情况解决方案是:后面可以跟一个空格字符,也可以跟英文下的标点符号,这些都会解析变量的。

可以使用大括号,将变量包起来,也能解析变量的。

4、布尔型

$a = true;

$b = false;

布尔值,常用在条件判断中。如:if、while、for等。

5、资源类型

资源类型:是指PHP对外部数据的一个引用。如:数据库、文件操作、图片验证码等。

<?php
    //PHP链接MySQL数据库(旧的,将要移除)
    // $link = mysql_connect("localhost","root","");
    // echo  $link;
header("content-type:text/html;charset=utf-8");
$servername = "localhost";
$username="root";
$password="";
$conn=new mysqli($servername,$username,$password);
if($conn->connect_error){
    die("数据库连接失败:".$conn->connect_error);
}else{
    echo "数据库连接成功";
};
?>

6NULL

空型:当使用一个不存在的变量时,返回空型。空型一般认为变量不存在。

空型只有一个值,就是NULL,不区分大小写。

PHP变量的类型判断

1var_dump()

l  描述:打印变量的相关信息(包括变量的类型和值)

l  语法:void var_dump ( mixed $expression [, mixed $... ] )

l  参数:$expression是指要打印变量的名称,可以是多个变量,多个变量之间用逗号隔开。

l  返回值:无。

2is_*()

l  is_bool():判断变量是不是布尔型。

l  is_int():判断变量是不是整型。

l  is_float():判断变量是不是浮点型。

l  is_numeric():判断变量是不是数值型。

l  is_string():判断变量是不是字符串。

l  is_array():判断变量是不是数组

l  is_object():判断变量是不是对象

l  is_null():判断变量是不是空型。

l  is_resource():判断变量是不是资源型。

3isset()

l  描述:检测变量是否设置。

l  语法:bool isset ( mixed $var [, mixed $... ] )

l  返回值:如果变量存在,且不等于NULL,则返回TRUE。否则,返加FALSE。

<?php
//form表单提交

 // if(isset($_GET)){
 //     //打印全局数组的信息
 //      var_dump($_GET);
 // }
 if(isset($_POST["username"])){
     //获取表单元素的值
      $username = $_POST["username"];
      echo "用户名:{$username}";
 }

?>
<form name="formal" method="get" action="">
    用户名:<input type="text" name="username">
    密码: <input type="password" name="userpwd">
    <input type="submit" value="提交表单">
</form>

4empty()

l  描述:检查一个变量是否为空

l  语法:bool empty ( mixed $var )

l  说明:换句话说,""、0、"0"、NULL、FALSE、array()、var $var;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

PHP如何获取表单提交数据

1、超全局数组变量:$_GET[]

l  描述:获取表单 method = “get” 提交的数据

l  举例:$username = $_GET[“username”];

<?php
//form表单提交

 // if(isset($_GET)){
 //     //打印全局数组的信息
 //      var_dump($_GET);
 // }
 if(isset($_POST["username"])){
     //获取表单元素的值
      $username = $_POST["username"];
      echo "用户名:{$username}";
 }

?>
<form name="formal" method="get" action="">
    用户名:<input type="text" name="username">
    密码: <input type="password" name="userpwd">
    <input type="submit" value="提交表单">
</form>

2、超全局数组:$_POST[]

l  描述:获取表单 method = “post” 提交的数据

l  举例:$username = $_POST[“username”];

变量之间的运算,必须是同类型的。如果类型不同,则必须转成同类型,然后再运算。

变量类型的转换:系统自动转换、强制转换(手动转换)

PHP数据类型转换

1、其它类型转成布尔型

2、其它类型转成数值型

3、其它类型转成字符型(了解)

PHP运算符

1、算术运算符:+-*/%++--

“%”取余。两个数相除取余数。如果余数为0,说明能除尽。

举例:10 % 3 = 1  //余数为1,说明10不能被3整数

              “++”自加1。有两种用法:作前缀(++$i)和作后缀($i++)

(1)如果单独使用,$i++和++$i,结果一样。

              (2)如果将$i++和++$i,混在其它表达式当中,则结果不一样。

$c  = $a+++10; //等于$c = ($a++)+10

2、字符串运算符:..=

3、赋值运算符:=+=-=*=/=%=

“=”赋值号。将右边运算结果,赋给左边变量。

“+=”先加后等。$a += 10  //展开后  $a = $a+10

“-=”先减后等。$a -= 10   //展开后  $a = $a – 10

“*=”先乘后等。$a *= 10  //展开后  $a = $a * 10

4、比较运算符:><>=<===!====!==

注意:比较运算符的运算结果,就是一个布尔值。

“=”赋值号。

“==”是等于。判断值是否相等,不管类型。如: 10 == “10px”  //true

“===”全等于。判断类型是否一致,还要判断值是否相等。10 === “10px”  // false

5、逻辑运算符:&&||!

l  “&&”逻辑与(并且关系)。如果左右两个操作数的结果都为TRUE,则总结果为TRUE。只要有一个为FALSE,则总结果为FALSE。

“!”逻辑非(取反)

!TRUE = false

!100 = false

三元运算符

二元运算符:是左右有两个操作数。如:+、-、*、/

三元运算符:是三个操作数或者表达式。

运算符优先级

时间: 2024-10-06 21:33:56

PHP相关的相关文章

【Windows10&nbsp;IoT开发系列】PowerShell的相关配置

原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计. 1.​启动 PowerShell (PS) 会话 注:若要使用装有Windows10 IoT Core设备启动PS会话,首先需要在主机电脑与设备之间创建信任关系. ​启动 Windows IoT 核心版设备后,与该设备相连的

微信小程序--图片相关问题合辑

图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.previewImage预览图片 微信小程序之预览图片 小程序开发:上传图片到腾讯云 .NET开发微信小程序-上传图片到服务器 微信小程序本地图片处理--按屏幕尺寸插入图片 [微信小程序]上传图片到阿里云OSS Python Flask小程序文件(图片)上传技巧 小程序图片上传阿里OSS使用方法 微信小程序问题汇

Android studio界面相关设置

Android studio界面相关设置 原文出自 http://www.cnblogs.com/justinzhang/p/4274839.html 用惯了emacs的操作方式,每当使用一款新的编辑器的时候,第一个想到的就是这个工具有没有emacs的快捷键,Android studio也是一样的. 1. Android studio设置emacs的方式如下,点击File->Settings 选择其中的keymap,在keymap中选择emacs,这样就成功的设置好了emacs的操作模式: 2.

25个Linux相关的网站【转】

转自:http://www.cnblogs.com/Lindaman/p/4552805.html 下面是25个最具有影响力,也是最重要的Linux网站,这些网站提供了Linux的分发包,软件,文件,新闻,以及其它所有的关于Linux的东西.关于Linux的分发包历史,可以看看本站的这篇文章<Linux Distribution Timeline> 1. Linux.org 这个站点主要提供Linux相关的新闻.文档.教程,培训,以及其它一切和Linux相关的东西.这是你需要了解Linux开源

Halcon学习之二:摄像头获取图像和相关参数

1.close_all_framegrabbers ( : : : ) 关闭所有图像采集设备. 2.close_framegrabber ( : : AcqHandle : ) 关闭Handle为AcqHandle的图像采集设备. 3.open_framegrabber ( : : Name, HorizontalResolution, VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn, Field, BitsP

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

记5.28大促压测的性能优化&mdash;线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里

ACL最大权限及相关命令

先查看目录vampire的acl权限 1 [[email protected] home]# getfacl vampire 2 # file: vampire/ 3 # owner: vampire 4 # group: vampire 5 user::rwx 6 user:iaknehc:r-x 7 group::--- 8 mask::r-x 9 other::--- mask是用来指定最大有效权限的,如果给用户赋予了ACL权限,是需要和mask的权限"相与"才能得到用户的真正权

Python 正则表达式相关问题

这几天学习python,写正则表达式相关代码如下: import re print(re.search(r'(?<=<(\w+)>).*(?=<\/\1>)',"<b>ewuiiriur</b>sdksfkj").span()) 报错如下: raise error("look-behind requires fixed-width pattern")sre_constants.error: look-behind

redis cluster (2) 相关命令参考及慢查询

实例关闭命令 redid-cli  shutdown  说明:关闭时强制 bgsave 所以需要一些时间    注:在start时,需要先加载数据到内存,数据加载完毕之后 redis 才会listen 端口 集群相关命令 1.CLUSTER INFO 打印集群的信息   2.CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息.  3.CLUSTER FAILOVER 手动故障转移,需要在转移的主节点的从节点上执行 节点 相关命令 1.CLUSTER MEE