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 ...
随机推荐
- Nginx反向代理的工作方式
如图所示: 当客户端发来HTTP请求时,Nginx并不会立刻转发到上游服务器,而是先把用户的请求(包括HTTP包体)完整地接收到Nginx所在服务器的硬盘或者内存中,然后再向上游服务器发起连接,把缓存 ...
- partial class的使用范围
Partial Class,部分类 或者分布类.顾名思义,就是将一个类分成多个部分.比如说:一个类中有3个方法,在VS 2005将该类中3个方法分别存放在3个不同的.cs文件中. 这样做的好处: 1. ...
- B窗体继承于A窗体,B启动:问题点
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; t ...
- 每日一问:面试结束时面试官问"你有什么问题需要问我呢",该如何回答?
面试结束时面试官问"你有什么问题需要问我呢",该如何回答?
- css3 缓动公式
var easingMap = { "linear": [0.250, 0.250, 0.750, 0.750], "ease": [0.250, 0.100, ...
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...
- ajax pagination 布局刷新
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- HTML 5 音频(audio)
audio 元素支持三种音频格式 IE 9 Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0 Ogg Vorbis √ √ √ MP3 √ √ ...
- &与&&,|与||
http://bokeid.blog.163.com/blog/static/93102786201181710259178/ &&:逻辑运算符,连接两个或多个表达式,结果为TRUE或 ...
- 在Windows 10下启用旧的照片查看器
从Windows 10开始,默认只能通过“照片”来查看图片了,非常不方便!通过将下列文本保存在.reg文件后导入,即可找回Windows XP时代的“照片查看器”. Windows Registry ...