Php 笔记
php基本简介
为何要学习php
通过上网查资料,了解了基本的php知识,并知道了php的优缺点。php是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。php 独特的语法混合了C、Java、Perl以及php自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用php做出的动态页面与其他的编程语言相比,php是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成html标记的CGI要高许多;php还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
php和html,配置php环境
- php语法支持html语法,可以在php的代码之中完美的嵌套标签语言。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多。
- 跟着网上教程学会了php环境的配置,并成功运行第一个php文件。
- 基础php:
echo,print,strings,arithmetic,variables,semicolons,comments
- 了解
echo和print的区别:echo可以输出多个值,每个值之间用逗号隔开,而print只能输出一个值。 - 在输出string类型时,
echo和print均可,多个字符串连接在一起时可用英式点即”.”相连。 arithmetic即在输出时支持算术运算,比如echo 2 * 3;,即将输出6。variables,php的变量没有类型而言,换句话说即时自动匹配类型,定义方式类似$name = “wsy”;,即每个变量名之前只需要加一个$符号,剩下为自己定义的名字即可。变量在被初次赋值后才被定义,所以不需要$name;如此定义变量。- 每条php语句都需要以分号结尾,这点与C/C++一样
- comments,注释也与C/C++的注释一样,可是使用
//,也可以使用/**/。
php条件控制
比较符号
php的比较符号类似C/C++,也分为大于(
>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=)。if和else和elseifphp中的
if语句与C/C++很类似,也在()内添加条件,同时也支持这样if(1)或者if(true)的简化写法。switch,endswitchphp中也存在
switch,写法还是与C/C++一样,switch ($a) {
case 1:
echo 1;
break;
default:
echo 2;
}
相比于普通的写法,php还提供了另外一种的写法,这种写法省去了花括号。
switch ($a) :
case 1:
echo 1;
break;
default:
echo 2;
endswitch;
php数组
数组的定义
因为php对于变量是自动匹配类型,则php的数组对于不同类型的变量也是一视同仁,即php的数组可以添加任何类型的变量在一个数组当中。
$a = array(“Tom”, “Jim”, 1, 2);
如此定义了一个名为a的数组,含有4个元素,2个string类型,2个数字类型。数组元素的获取,
[],{}通过数组下标(同C/C++也是从0开始)来访问数组的元素有2种方法,一个是用
[],另一个是用{}。这2个方法是一样的,不管用哪种方法都可以访问数组元素。echo $a[2]; //输出1
echo $a{1}; //输出Jim
数组元素的修改
php支持对数组元素的修改,修改方法即通过
[]或者{}访问对应的数组元素,然后将其赋予新的值即可。$a[1] = “TTT”;
echo $a{1}; //输出TTT,因为已经修改了。
数组元素的删除
php支持对数组中某个元素的删除或对整个数组的删除的功能。通过
unset();即可删除对应的元素。unset($a[1]); //删除了数组中的第二个元素,现在数组包含Tom,1,2
unset($a); //删除了整个数组
php循环
for循环php中的
for循环与C/C++相似,支持++操作符,但不支持+=,所以对于不是+1的循环,需要写成$i = $i + 3;for ($i = 0; $i <= 100; $i = $i + 10) {
//……
}
foreach循环当需要循环整个数组时,写
for循环可能会过于繁琐,所以php提供了一种特殊的循环方法,即foreach循环。写法如下:$a = array(“Tom”, “Jim”, 1, 2, 3);
foreach ($a as $i) {
echo $i;
}
这样就可以将php数组中的所有元素都输出了。
foreach (数组名 as 变量名),接下来对于数组中每个元素操作即对用户自己取变量名的变量操作即可,但不支持修改功能,类似与C/C++中的传值与传址的区别。while循环,endwhilephp中的
while循环有2种写法,普通的写法是都所知道的。while () {
//……
}
类似于之前的
switch,php中也有另外一种写法。while ():
//……
endwhile;
同
if/else一样,while同时也支持这样while(1)或者while(true)的简化写法。do-while循环php中的
do-while循环与C/C++一样。do {
//……
} while ();
do-while也支持这样do-while(1)或者do-while(true)的简化写法。循环嵌套
php中支持各种循环的相互嵌套。
php函数(1)
关于字符串的相关函数
strlen(string) substr(string, start, length) strtoupper(string) strtolower(string) strpos(string, string)
strlen(string):此函数用于求传入形参字符串string的长度,返回数字类型即字符串的长度。
substr(string, start, length):此函数用于求字符串string的某个子串。第一个形参为原字符串string。第二个形参start为子串在string中的开始位置,为数字类型变量。第三个形参length为子串的长度。此函数根据传入的形参,返回字符串类型的子串。
strtoupper(string):此函数用于将字符串string全部转换为大写。返回大写的string。
strtolower(string):此函数用于将字符串string全部转换为小写。返回小写的string。
strpos(string, string):此函数用于求在第一个string中第一次出现第二个string的首位置,若从未出现返回false。strpos("emily", "e"); // 0
strpos("emily", "ily"); // 2
strpos("emily", "zxc"); // false
关于数学的相关函数
round(number(, n))
rand(min, max)
round函数用于对浮点数保留小数。
round(number):这样写,默认对number保留为整数。
round(number, n):这样写,对number保留n位小数。
rand(min, max):此函数用于求给定范围[min,max]中的随机数。关于数组的相关函数
array_push(array, number/string)
count(array)
sort(array)
rsort(array)
join(string,array)
array_push(array, number/string):此函数用于对数组array尾端增加一个元素,可以为任意类型。
count(array):此函数用于求数组array中元素的个数。
sort(array):此函数用于将数组array中的元素按字典序从小到大排列。
rsort(array):此函数用于将数组array中的元素按字典序从大到小排列。
join(string, array):此函数用于将数组中的元素用string连接起来,并返回连接后的结果。$array = array(5, 3, 7 ,1);
rsort($array);
print join(":", $array);
//输出 7:5:3:1
php函数(2)
自定义函数
php中允许用户定义自己所需的不同的函数,但不需要写函数类型。
function Template() {
//……
}
function代表定义的是一个函数,Template为函数名,用户可以随意定义,不需要考虑函数的类型。带形参的自定义函数
在函数定义时,
()之中可以为空,也可以添加形参,即称为带有形参的函数。function aboutMe($name, $age) {
echo "Hello! My name is " . $name . ", and I am " . $age . " years old.";
}
此函数定义了两个形参,分别为
$name和$age。调用时,aboutMe("wsy", 22);即可,也可以传入其他变量名。自定义函数的返回值
php的函数虽然没有函数类型,但是可以返回任意类型的值。
function returnName() {
return "wsy";
}
return后可以跟变量也可直接跟常量。
php对象(1)
类的定义、对象的定义
同C++中类的定义相同,php的类定义如下。
class Dog {
public $name;
public $numLegs = 4;
//可以定义公有成员,可以对其赋值也可以对其不赋值
//……
}建立一个类的对象。
$dog = new Dog();
调用公有成员。echo $dog->numLegs;
//name因为未赋值,若要输出name的话,则不会输出任何东西。
构造器的定义及调用
在类可以用
__construct()来定义构造器。class Dog {
public $name;
public $numLegs = 4; public function __construct($name) {
//构造器可以带形参也可以不带形参
$this->name = $name;
//若要对类内成员赋值,需用$this->成员名 的形式赋值。
}
//……
}
构造器在定义对象时自动被调用。
$dog = new Dog(“Tom”);
echo $dog->name;
//输出Tom。
方法的定义及调用
在类内可以自定义方法。class Dog {
public $name;
public $numLegs = 4; public function __construct($name) {
$this->name = $name;
} public function greet() {
//方法可以带形参也可以不带
return “Hello, my name is ” . $name . “.”;
//方法可以有返回值也可以没有
}
//……
}
方法的调用类似公有成员的调用,
()不可省略。$dog = new Dog(“Tom”);
echo $dog->greet();
//输出Hello, my name is Tom.
php对象(2)
类的继承
php支持类的继承。
class Shape {
public $hasSides = true;
} class Square extends Shape {
//Square类继承了Shape类
}
通过
property_exists()函数可以查看某个类是否包含某个方法或者私有成员。$square = new Square();
if (property_exists($square, "hasSides")) {
echo "I have sides!";
}
//有输出,输出I have sides!
php的类继承与C++中的类继承一样,子类会继承父类的所以公有成员和方法。
重写父类方法,
finalphp支持在子类中重写父类中的方法,并且在调用时调用的为子类重写后的方法。
class Vehicle {
public function honk() {
return "HONK HONK!";
}
} class Bicycle extends Vehicle {
public function honk() {
//父类方法的重写
return "Beep beep!";
}
}
调用子类方法
$bicycle = new Bicycle();
echo $bicycle->honk();
//将输出Beep beep!
若想要在子类重写后,仍调用的为父类继承来的方法。只需在父类方法前增加
final关键字。若将上面父类Vehicle中的honk方法改为如下形式,其他保持不变。final public function honk() {
//……
}
最终程序将输出
HONK HONK!。const和::php类中支持
const常量,即定义时就需要赋值,一旦赋值后不允许修改。class Cat {
const numLegs = 4;
//不需要添加$符号
}
对于
const常量的访问,不能与之前公有成员的访问方法一样,而应该用::来访问。因为常量是针对每个类而言,所以应采取如下形式访问。echo Cat::numLegs;
//输出4
staticphp类支持静态方法和静态变量,允许用户在不创建对象而可以访问成员和方法。
class Person {
public static $isAlive = "Yep!"
public static function greet() {
echo "Hello there!";
}
}调用时,采取如下形式访问。
echo Person::$isAlive;
//输出Yep!
Person::greet();
//输出Hello there!
Php 笔记的更多相关文章
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- NET Core-学习笔记(三)
这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
随机推荐
- c语言,检测一个无符号整数中是否有偶数位个1
最近在学习大牛Bryant O'Hallaron 的深入理解计算机系统,发现学了这么久的程序设计,其实有些基本的东西还不太了解,这不,这两天在恶补整数,浮点数在计算机中的表示,并且开始做上面的习题, ...
- Servlet学习四——传输文本
在最初使用Servlet时,觉得get方法很好用,也了解到传输一般性的变量,除了文件流和安全性外,都可以用get方法,所以,也就习惯用get方法了. 在实现一个注册方法过程中,中文注册都是乱码,跟踪后 ...
- 使用Linux碎解一
一.安装VMwarestation. 二.安装Linux系统(这里是CentOS7) 步骤: #==========================part1===================== ...
- 关于使用READ TABLE语句的几点注意事项
原文地址 http://www.dlsap.com/thread-34-1-1.html 1. 如果使用READ TABLE语句来读取内部表数据,而不是简单看返回值判断是否存在,那么在使用REA ...
- 循序渐进Python3(十一) --2-- web之javascript
JavaScrip JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之后 ...
- Scala包
#引入包的全部成员的办法 import scala.collection._ #引入同一个包中的几个成员 import scala.collection.{A,B} #重名 要 重命名 import ...
- ffmpeg 音频转换: use ffmpeg convert the audio from stereo to mono without changing the video part
To convert the audio from stereo to mono without changing the video part, you can use FFmpeg: ffmpeg ...
- 自适应UITableView的Cell高度问题
1.自己计算Cell的高度返回: 1>model中计算: // // InfoModel.h // OCDemo // // Created by 思 彭 on 16/12/27. // Cop ...
- c#中如何获取listbox中选中值的问题
StringBuilder ConponPerson = new StringBuilder(); for (int i = 0; i < lb_tzs.Items.Cou ...
- sap MD04中常用函数
1. 需求溯源 : MD_PEGGING_NODIALOG 2. 实时库存 : MD_STOCK_REQUIREMENTS_LIST_API 这个函数中MDPSX 和 MDEZX 是通过 MDPS 的 ...