PHP的学习

PHP脚本以<?php 开始 ?>结束

<?php

//此处写代码

? >

php默认文件扩展名.php

php文件通常包含HTML标签以及一些PHP脚本代码

“echo”是php输出函数,下面是一个简单例子

<!DOCTYPE html>

<html>

<body>

<h1>我的第一张php页面</h1>

<?php

echo “hello world!”;

? >

</body>

</html>

PHP大小写敏感:在PHP中,所有用户定义的函数、类和关键词(例如if、else、echo等)以下三种写法都是合法的

echo

ECHO

EcHo

但是在对变量定义时时敏感的,如下

echo "My car is " . $color . "<br>";

echo "My house is " . $COLOR . "<br>”;

echo "My boat is " . $coLOR . "<br>";

只有第一句会输出变量的值。

变量是存储信息的容器

$x = 5;

$y = 6;

$z = $x+$y;

类似于代数运算:

x = 5;

y = 6;

z = x + y;

PHP变量的名称可以取得很短如x,y;也可以取得很长如carname、peoperpassword。

PHP变量的规则

1.变量以$符号开头,其后是变量的名称

2.变量名称必须以字母或下划线开头

3.变量名称不能以数字开头

4.变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

5.变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

PHP变量名称对大小写敏感

PHP没有为其创建的命令,会在第一次赋值时被创建(无需告诉类型,php会自动转化正确的数据类型)

local和global作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

提示:若果想要输出函数内部的变量,那么请在函数内部变量前加global,另一方面如果函数内部想访问全局变量可以使用$GLOBALS[index]数组,下标存有变量名:如下示:

<?php

$x=5;

$y=10;

function myTest() {

$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];

}

myTest();

echo $y;

?>

static关键词

函数执行后,会删除所有的变量,如果想保留变量的值需要在第一次声明变量时使用static关键词。

注意:

html中可以嵌套PHP脚本,php中的echo输出语句也可以包含html标记(试验一下,如果php里嵌套html的话,在thinkPHP框架中的Runtime中的Cache中会定位到错误的位置)

php中的输出语句echo print

echo可以输出一个以上的字符串

print只能输出一个字符串,并始终返回1

提示:echo的效率要比print好

数据类型:

php字符串:字符串是字符序列,可以使用单引号或者双引号:如:”hello world!” ‘hello world’ 具有同样的效果。

php整数:不能含有空格、逗号、小数点。整数正负均可,十进制、十六进制(前缀是0x)或八进制(前缀0)。

var_dump()会返回数据的类型和值,如:$X= 3690 ; var_dump($x); 会返回int(3690).

php浮点数:浮点数是由小数和指针形式的数字。

php逻辑:逻辑是true或false,如$x = true;$y = false.

php数组:数组可以在一个变量中存储多个值,用var_dump()返回变量的数据类型和值,如:

<?php

$cars=array("Volvo","BMW","SAAB");

var_dump($cars);

?>

返回的数据是:array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB” }

简单解释一下:array(3)顾名思义是指这个数组有三个值,【0】=>string(5)”Volvo” 是指数组下标中为0的值是个字符串类型,数组长度是5,值是Volvo。

php对象:对象是存储数据和有关如何处理数据的信息的数据类型,在php中必须明确的声明对象。声明对象的类使用class关键词。类中包含属性和方法的结构。然后在对象类中定义数据类型,然后在该类的实例中使用此数据类型。

php NULL值:NULL表示变量无值,NULL值标示变量是否为空,也用于区分空字符串和空值数据库,可以把值设置成NULL,将变量清空。如:

<?php

$x="Hello world!";

$x=null;

var_dump($x);

?>

返回的结果就是:NULL

PHP字符串函数

php strlen()函数:返回字符串的长度,以字符计,如:

echo strlen(“hello world!”);返回的结构就是12.

php strpos()函数:用来检索字符串内指定的字符或文本。若找到则返回首字符的位置,否则返回FALSE,如:

echo(“hello world!”,“world”);输出的结果就是6。因为字符串的首字符位置是0.

php常量

常量是单个值得标示符,在脚本中无法改变其值,且常量名称前是没有$符号(与变量不同,常量在整个脚本中是自动全局的)

常量的定义:设置常量使用define()函数,使用三个参数:

1.首个参数定义常量的名称;

2.第二个参数定义常量的值;

3.可选的第三个参数规定常量名是否对大小写敏感。默认是fales。

如:敏感:define(“GREETING”,”Welcome to W3School.com.cn!”);echo GREETING;

不敏感:define(“GREETING”,”Welcome to W3School.com.cn!”,true); echo greeting;

php运算符

php算数运算符:

直接实例搞起来,如:

<?php

$x = 11;

$y = 6;

echo($x + $y);//进行+运算

echo($x -  $y);//进行-运算

echo($x * $y);//进行*运算

echo($x / $y);//进行除法运算

echo($x % $y);//进行曲模运算

?>

php赋值运算符

php中的赋值运算符是=,认为右侧值赋值给左侧值。

php字符串运算符

运算符 . 串接;

运算符 .= 串接赋值。

如:

$a = “hello”;

$b = $a.”world!”;

echo $b//会输出hello world!

$x = “helo”;

$x .= “world!”;

echo $x//会输出hello world!

PHP递增/递减运算符

++$x 表示:加1后返回

$x++ 表示:返回后加1

--$x 表示:减1后返回

$x— 表示:返回后减1

php比较运算符

== 等于

===全等 类型相同

!= 不等于

<>不等于

!== 不全等 类型不相同返回true

> 大于

<  小于

>= 大于或等于

<= 小于或等于

如:

$x = 100;

$y = “100”;

var_dump($x === $y) 返回bool(false) 因为类型不同

var_dump($s !== $y) 返回bool(true) 因为类型不同

php逻辑运算符

and  or xor异或

&& 与

|| 或

! 非

PHP条件语句

使用条件语句的目的是根据条件选择执行的任务。

1.if 语句

2.if…else语句

3.if…elseif…else语句

4.switch语句

switch语句:有选择的执行代码块,避免冗余的if...elseif...else代码块

PHP while循环

一块代码需要重复执行时使用

1.while

2.do…while 先执行一次,再判断是否循环执行

3.for

4.foreach 遍历数组中的每个元素并循环代码块’(只适用于数组)

如:

<?php

$colors = array(“red”,”green”,”blue”);

foreach($colors as $value){

echo “$value”<br>

}

?>

PHP函数

php中的内建函数超过1000个,用户也可以自建函数

函数可以在程序中重复使用的代码块,页面加载是函数不会立即执行,只有在调用的时候才会执行。

提示:函数名对大小写不敏感,函数声明以function开头。函数名应该能反映出函数要执行的任务。

函数中的参数:在括号中定义,如果定义多个可以用逗号隔开

默认参数:如果没有传递参数则使用默认值。

PHP数组

数组能够在单个变量中保存一个或多个值。

php中使用 array()函数创建数组

1.索引数组:带有数字索引的数组

2.关联数组:带有指定建的数组

3.多维数组:包含一个或多个的数组的数组

count()函数用来获取数组的长度,如:count($colors);

关联数组:

关联数组是使用分配给数组的指定键的数组,两种创建方式:

$age = array(“tom”=>”20”,”tim” = >”18”,”jock” = >”22”);

或者:

$age[’tom’] = “20”;

$age[’tim’] = “18”;

$age[‘jock’] = 22;

遍历关联数组:

<?php

$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

foreach($age as $x=>$x_value) {

echo "Key=" . $x . ", Value=" . $x_value;

echo "<br>";

}

?>

输出结果:

Key=Bill, Value=35

Key=Steve, Value=37

Key=Peter, Value=43

php数组排序函数

sort():以升序对数组排序

rsort():降序对数组排序

asort():根据值,以升序对关联数组排序

ksort():根据键,以升序对关联数组排序

arsort():根据值降序排序

krsort():根据键降序排序

如:根据键值进行升序排序

<?php

$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

ksort($age);

foreach($age as $x=>$x_value)

{

echo "Key=" . $x . ", Value=" . $x_value;

echo "<br>";

}

?>

输出结果是:

Key=Bill, Value=35

Key=Peter, Value=43

Key=Steve, Value=37

PHP全局变量-超全局变量

意味在脚本的全部作用域都可以使用

超全局变量有:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

$GLOBALS:引用全局作用域可用的全部变量(php脚本任意位置均可访问$GLOBALS[index]数组存储所有的全局变量)

<?php

$x = 30;

$y = 65;

function addition() {

$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

}

addition();

echo $z;

?>

输出95.

$_SERVER:这种超全局变量保存关于报头、路径、和脚本位置的信息。

<?php

echo $_SERVER['PHP_SELF'];

echo "<br>";

echo $_SERVER['SERVER_NAME'];

echo "<br>";

echo $_SERVER['HTTP_HOST'];

echo "<br>";

echo $_SERVER['HTTP_REFERER'];

echo "<br>";

echo $_SERVER['HTTP_USER_AGENT'];

echo "<br>";

echo $_SERVER['SCRIPT_NAME'];

?>

输出:

/example/php/demo_php_global_server.php

www.w3school.com.cn

www.w3school.com.cn

http://www.w3school.com.cn/tiy/s.asp?f=demo_php_global_server

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36

/example/php/demo_php_global_server.php

$_REQUEST:用于收集HTML表单提交的数据,下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST 来收集 input 字段的值:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>

<?php

$name = $_REQUEST['fname'];

echo $name;

?>

$_POST:PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form> 标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_POST 来收集输入字段的值:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>

<?php

$name = $_POST['fname'];

echo $name;

?>

$_GET:$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

$_GET 也可以收集 URL 中的发送的数据。

假设我们有一张页面含有带参数的超链接:

<a href="/demo/test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>

PHP开发基础知识的更多相关文章

  1. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  2. iOS开发——总结篇&IOS开发基础知识

    IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...

  3. Ext常用开发基础知识

    Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...

  4. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...

  5. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列

    1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...

  6. [No0000138]软件开发基础知识

    1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...

  7. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  8. IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路

    1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万 ...

  9. 3D开发基础知识和简单示例

    引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...

  10. 为企业应用开发提速,写给企业IT部门的低代码开发基础知识

    简介:应用程序开发长期以来一直是IT部门和业务部门面临的问题. IT部门总是被新的应用程序需求弄得不堪重负.他们不可能完成业务部门想要完成的每一个项目. 同时,业务部门的用户厌倦了等待,并开始完全绕过 ...

随机推荐

  1. 【Java编程】Java学习笔记<一>

    1.  高级语言的编译和执行方法可以归为两大基本技术:编译执行和解释执行.C/C++/Delphi是编译执行,basic/java/matlab是解释执行. 2.    尽管Java是解释执行的,也需 ...

  2. ping通windows下虚拟机上的linux系统

    直接ping  linux的ip 直接就失败了. 现在我的windows有两个虚拟网卡 接下来让linux使用VMnet8网卡 修改我的linux系统下的lo网卡的ip地址为VMnet8的ip地址 现 ...

  3. Hadoop 的 TotalOrderPartitioner

    Partition所处的位置 Partition位置 Partition主要作用就是将map的结果发送到相应的reduce.这就对partition有两个要求: 1)均衡负载,尽量的将工作均匀的分配给 ...

  4. iOS监听模式系列之对APNs的认知与理解

    前言: APNs 协议在近两年的 WWDC 上改过两次, 15 年 12 月 17 日更是推出了革命性的新特性.但在国内传播的博客.面试题里关于 APNs 的答案全都是旧的.错的. 导航: 对 APN ...

  5. Emmet for Dreamweaver:HTML/CSS代码快速编写神器

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...

  6. Spring Boot缓存应用实践

    缓存是最直接有效提升系统性能的手段之一.个人认为用好用对缓存是优秀程序员的必备基本素质. 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统. 一.通用缓存接口 1.缓 ...

  7. Set对象常用操作方法和遍历

    Set<String> set = new HashSet<String>(); /** * set的常用操作方法有: * add()向集合添加元素 clear()清空集合元素 ...

  8. c#实例化继承类,必须对被继承类的程序集做引用

    0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Culture=neutral, PublicKeyTo ...

  9. [ SSH框架 ] Hibernate框架学习之三

    一.表关系的分析 Hibernate框架实现了ORM的思想,将关系数据库中表的数据映射成对象,使开发人员把对数据库的操作转化为对对象的操作,Hibernate的关联关系映射主要包括多表的映射配置.数据 ...

  10. Android平台的Swift—Kotlin

    WeTest 导读 Kotlin 已经出来较长一段时间了,有些同学已经对Kotlin进行了深入的学习,甚至已经运用到了自己的项目当中,但是还有较多同学可能只是听过Kotlin或简单了解过,这篇文章的目 ...