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. STL - vector容器

    1Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添加 ...

  2. 程序员编程艺术:第三章续、Top K算法问题的实现

    程序员编程艺术:第三章续.Top K算法问题的实现 作者:July,zhouzhenren,yansha.     致谢:微软100题实现组,狂想曲创作组.     时间:2011年05月08日    ...

  3. Android ROM开发(一)——Windows下Cygwin和Android_Kitchen厨房的安装

    Android ROM开发(一)--Windows下Cygwin和Android_Kitchen厨房的安装 很久没有碰到ROM开发了,在很久很久以前也是从ROM起步的,无奈还是一脚踏上了Android ...

  4. DH密钥交换非对称加密

    迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称"D–H") 是一种安全协议. 它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起 ...

  5. android EventBus详解(三)

    post()方法调用流程 我们继续来看EventBus类,的另一个入口方法post() //已省略部分代码 public void post(Object event) { PostingThread ...

  6. The 6th tip of DB Query Analyzer

      The 6th tip of DB Query Analyzer MA Gen feng (Guangdong Unitoll Services incorporated, Guangzhou ...

  7. Shiro之身份认证、与spring集成(入门级)

    目录 1. Shro的概念 2. Shiro的简单身份认证实现 3. Shiro与spring对身份认证的实现 前言: Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境 ...

  8. 解密for循环工作机制之迭代器,以及生成器、三元表达式与列表解析、解压序列

    本节内容 1.迭代器协议与for循环 2.三元表达式 3.解压序列 4.列表解析 5.生成器 迭代器协议与for循环 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中下一项, ...

  9. JAVA学习总结-面向对象

    前言:java面向对象中的知识可以说是整个java基础最核心的部分,不知不觉已经学完快2个月了,是时候复习一波了,刚开始学习的时候被绕的很懵逼,这次总结完毕之后有了很多新的感悟,这就是所谓的每有会意, ...

  10. Viavdo&ISE&Quartus II级联Modelsim级联仿真

    博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再 ...