PHP:php知识小解
一、什么是PHP?
PHP 是一种创建动态交互性站点的服务器端脚本语言。
PHP 能够生成动态页面内容。
PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件。
PHP 能够接收表单数据并处理。
PHP 能够发送并取回 cookies
PHP 能够添加、删除、修改数据库中的数据。
PHP 能够限制用户访问网站中的某些页面。
PHP 能够对数据进行加密和解密。
....
服务器端脚本语言包含:
PHP:开源、免费、应用广泛、入门简单,WordPress、facebook等就是通过其开发的
Java.
net...
学习PHP必备环境一键搭建包:
XAMMP:https://www.apachefriends.org/download.html
phpstudy:http://www.phpstudy.net/
例如使用phpstudy这个包的截图如下:
一般情况下,创建的php文件都放在WWW下或者WWW子目录php下,然后在浏览器使用:http://127.0.0.1(或者localhost)/目标文件或者http://127.0.0.1(或者localhost)/php/目标文件进行运行即可
PHP格式:
PHP 脚本以<?php 开头,以 ?> 结尾,其文件的默认文件扩展名是.php,其语句以分号(;)结尾。
二、php入门
php脚本的后面名为.php
,代码放置在下面的括号里面:
<?php
.......
?>
echo
可以打印信息,类似于printf
。
<?php
echo "hallo world";
?>
每条语句后面用分号";"结尾。
php支持三种注释方式:
<?php
// 第一种 # 第二种 /*
这是
多行
注释
*/
?>
在php中,函数、类、和关键词的大小写都是同一个东西:
<!DOCTYPE html>
<html>
<body>
<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
Echo "Hello World!<br>";
?>
</body>
</html>
不过所有变量都对大小写敏感,需要区分大小写。
<?php
$color="red";
$Color="black";
echo "my car is " . $color . "<br>";
echo "my car is " . $Color . "<br>";
?>
上面的例子同时指出了变量定义以及字符串拼接的语法。
变量命名规则:
PHP 变量规则:
变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
变量会在第一次赋值时被创建。无需声明变量的类型。
变量会有三种不同的作用域:
PHP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态) 函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
下面的例子测试了带有局部和全局作用域的变量: <?php
$x=5; // 全局作用域 function myTest() {
$y=10; // 局部作用域
echo "<p>测试函数内部的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
} myTest(); echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>
运行结果:
测试函数内部的变量: 变量 x 是:
变量 y 是:10
测试函数之外的变量: 变量 x 是:5
变量 y 是:
比较奇怪的就是为什么全局变量不能在局部函数内访问。
其实可以访问,不过需要global关键字的帮助:
global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
<?php
$x=5;
$y=10; function myTest() {
global $x,$y;
$y=$x+$y;
} myTest();
echo $y; // 输出 15
?>
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
<?php
$x=5;
$y=10; function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} myTest();
echo $y; // 输出 15
?>
通常,当函数完成执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要static:
<?php function myTest() {
static $x=0;
echo $x;
$x++;
} myTest();
myTest();
myTest(); ?>
php中echo和print都能使用,两者的唯一区别是print返回1,echo没有返回值。
strlen函数可以返回字符串的长度。
strpos函数用来确定另外一个字符串的位置:
<?php
echo strpos("Hello world!","world");
?>
完整的string参考手册.
使用define函数来定义常量:
<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>
define函数还有第三个参数,用来指定是否大小写敏感。
php的if-else语句和其他语言大同小异,举个例子:
<?php
$t=date("H"); if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
switch-case语句:
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
while、for语句和其他语言无差别,看看foreach吧:
<?php
$colors = array("red","green","blue","yellow"); foreach ($colors as $value) {
echo "$value <br>";
}
?>
php的真正力量来自于它的函数,它有1000个内置函数。
用户定义的函数声明以关单 "function" 开头:
function functionName() {
被执行的代码;
}
举个例子:
<?php
function writeMsg() {
echo "Hello world!";
} writeMsg(); // 调用函数
?> // 含参数
<?php
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year <br>";
} familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?> // 默认参数
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
} setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
?> // 返回值
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
} echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
在 PHP 中,有三种数组类型:
- 索引数组 - 带有数字索引的数组
- 关联数组 - 带有指定键的数组
- 多维数组 - 包含一个或多个数组的数组
索引数组:
$cars=array("Volvo","BMW","SAAB");
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?> // count
<?php
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?> // 变量索引数组
<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars); for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
?>
关联数组:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43"; <?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?> // 遍历
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
数组排序方法有下面这些:
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
比较难理解的是键值对排序。
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?> <?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
超全局变量,也就是预定义的全局变量,在哪里都能用,有特殊含义:
$GLOBALS:引用全局作用域中可用的全部变量
$_SERVER:保存关于报头、路径和脚本位置的信息。
$_REQUEST:用于收集 HTML 表单提交的数据。
$_POST:用于收集提交 method="post" 的 HTML 表单后的表单数据。也常用于传递变量。
$_GET:$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_FILES
$_ENV
$_COOKIE
$_SESSION
其他内容可以在表单处理中找到。
PHP:php知识小解的更多相关文章
- spring事务管理及相关知识
最近在项目中遇到了spring事务的注解及相关知识,突然间感觉自己对于这部分知识只停留在表面的理解层次上,于是乎花些时间上网搜索了一些文章,以及对于源码的解读,整理如下: 一.既然谈到事务,那就先搞清 ...
- java 基础知识(三)
Arraylist与Vector的区别 清浅池塘 程序员,专栏:Java那些事儿唯一作者,咨询前请先点详细资料 162 人赞同了该文章 这几天工作有点忙,有很多代码需要写,更新文章有点慢,说声抱歉 ...
- 你必须知道的EF知识和经验
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 学点HTTP知识
不学无术 又一次感觉到不学无术,被人一问Http知识尽然一点也没答上来,丢人丢到家了啊.平时也看许多的技术文章,为什么到了关键时刻就答不上来呢? 确实发现一个问题,光看是没有用的,需要实践.看别人说的 ...
- java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?
你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...
- [C#] C# 知识回顾 - 学会处理异常
学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...
- [C#] C# 知识回顾 - 学会使用异常
学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...
随机推荐
- 如何破解mac版UltraEdit?
Rodolfo教你如何破解UtralEdit? 第一步:去官网下载原载,先运行一次: 第二步:在终端里执行下面代码就可以破解完成!printf '\x31\xC0\xFF\xC0\xC3\x90' | ...
- 犀利的报表系统,发票据与报表开发的快速利器,AgileEAS.NET SOA中间件GReport使用指南
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- IBM x3850 x5 服务器 安装 Windows Server 2008
一.硬件需求 一个8G以上的U盘 二.软件需求 1.Windwos Server 2008镜像 2.系统启动盘制作工具Ultraiso 3.IBM ServerGuide引导镜像 三.制作及安装步骤 ...
- Guava学习笔记(3):复写的Object常用方法
转自:http://www.cnblogs.com/peida/p/Guava_Objects.html 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals ...
- sql Lloader
create table ban_ji(id integer,ban_ji varchar2(25))insert into ban_ji values(1,'1-(1)');insert into ...
- WPF 点击Calendar后,需要点击两次按钮
主面板上有一个Calendar控件,点击选择了日期后,如果点击确认按钮,需要点击两次.这个问题的解决方法如下: private void calendar1_PreviewMouseUp(ob ...
- iOS--NSBundle理解
NSBundle:官方文档解释:An NSBundle object represents a location in the file system that groups code and r ...
- EXCEL处理大量数据的潜在风险
同事收到几份60几M的xls文件,电脑性能不够,发给我来处理. 处理发现有BUG.简单的vlookup,如果只是实验性的处理几个数据的话,发现没有问题,但批量对全部数据进行处理,就会出现#N/A的问题 ...
- ZeroMQ接口函数之 :zmq_msg_size - 以字节为单位返回消息内容的大小
ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq_msg_size zmq_msg_size(3) ØMQ Manual - ØMQ/3.2.5 Name zmq ...
- Windows Phone Sliding Effect
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" Backgro ...