PHP开发基础知识
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开发基础知识的更多相关文章
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS开发——总结篇&IOS开发基础知识
IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...
- Ext常用开发基础知识
Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...
- IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...
- [No0000138]软件开发基础知识
1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路
1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万 ...
- 3D开发基础知识和简单示例
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...
- 为企业应用开发提速,写给企业IT部门的低代码开发基础知识
简介:应用程序开发长期以来一直是IT部门和业务部门面临的问题. IT部门总是被新的应用程序需求弄得不堪重负.他们不可能完成业务部门想要完成的每一个项目. 同时,业务部门的用户厌倦了等待,并开始完全绕过 ...
随机推荐
- Xcode出现may cause a leak的解决
比如如下代码: -(void)performSelector:(SEL)selector onNode:(CCNode *)node withObject:(id)object recursive:( ...
- RubyGem默认源安装太慢,修改国内淘宝源
原帖地址:http://www.hiceon.com/topic/Ruby-Gem-install-source-taobao/ WHY? 由于国内网络原因(你懂的),导致 rubygems.org ...
- Ibatis动态(dynamic)查询
Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息: Ibatis配置信息 <!-- Dynamic Sql --> <typeAlias a ...
- VS2010中使用Jquery调用Wcf服务读取数据库记录
VS2010中使用Jquery调用Wcf服务读取数据库记录 开发环境:Window Servere 2008 +SQL SERVE 2008 R2+ IIS7 +VS2010+Jquery1.3.2 ...
- iOS监听模式系列之IOS中的几中观察监听模式
本文介绍Objective C中实现观察者模式(也被称为广播者/监听者.发布/注册或者通知)的五种方法以及每种方法的价值所在. 该文章将包括: 1 手动广播者和监听者(Broadcaster and ...
- React Native入门 开发第一个React Native应用
1. 首先创建一个目录(比如ReactNativeDir),用于存放各个ReactNative工程的代码 2.使用React Native命令工具来创建(初始化)一个ReactNative项目(tes ...
- python lock, semaphore, event实现线程同步
lock 机制不管你是java, C#, 还是python都是常用的线程同步机制, 相比较C# 的锁机制, python的加锁显得比较简单, 直接调用threading 标准库的lock 就可以了. ...
- ScrollView与ListView嵌套使用,导致ListView下拉失效
在一次项目开发中,在Scrollv中嵌套进ListView,当触摸ListView范围下拉时,整个展示页面滑动,而不是ListView内容滑动, 也就是说ListView滑动事件被ScrollView ...
- 四种生成和解析XML文档的方法详解
众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...
- spring boot之入门Controller常用注解
Controller常用注解 @Controller 处理http请求 @RestController Spring4之后新加的注解,原来返回json数据需要@ResponseBody配合@Cont ...