1. php基本简介

    1. 为何要学习php

      通过上网查资料,了解了基本的php知识,并知道了php的优缺点。php是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。php 独特的语法混合了C、Java、Perl以及php自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用php做出的动态页面与其他的编程语言相比,php是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成html标记的CGI要高许多;php还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

    2. php和html,配置php环境

    • php语法支持html语法,可以在php的代码之中完美的嵌套标签语言。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多。
    • 跟着网上教程学会了php环境的配置,并成功运行第一个php文件。
    1. 基础php:

      echoprintstringsarithmeticvariablessemicolonscomments
    • 了解echoprint的区别:echo可以输出多个值,每个值之间用逗号隔开,而print只能输出一个值。
    • 在输出string类型时,echoprint均可,多个字符串连接在一起时可用英式点即”.”相连。
    • arithmetic即在输出时支持算术运算,比如echo 2 * 3;,即将输出6。
    • variables,php的变量没有类型而言,换句话说即时自动匹配类型,定义方式类似$name = “wsy”;,即每个变量名之前只需要加一个$符号,剩下为自己定义的名字即可。变量在被初次赋值后才被定义,所以不需要$name;如此定义变量。
    • 每条php语句都需要以分号结尾,这点与C/C++一样
    • comments,注释也与C/C++的注释一样,可是使用//,也可以使用/**/
  2. php条件控制

    1. 比较符号

      php的比较符号类似C/C++,也分为大于(>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=)。

    2. ifelseelseif

      php中的if语句与C/C++很类似,也在()内添加条件,同时也支持这样if(1)或者if(true)的简化写法。

    3. switchendswitch

      php中也存在switch,写法还是与C/C++一样,

      1. switch ($a) {
      2. case 1:
      3. echo 1;
      4. break;
      5. default:
      6. echo 2;
      7. }

      相比于普通的写法,php还提供了另外一种的写法,这种写法省去了花括号。

      1. switch ($a) :
      2. case 1:
      3. echo 1;
      4. break;
      5. default:
      6. echo 2;
      7. endswitch;
  3. php数组

    1. 数组的定义

      因为php对于变量是自动匹配类型,则php的数组对于不同类型的变量也是一视同仁,即php的数组可以添加任何类型的变量在一个数组当中。

      $a = array(“Tom”, “Jim”, 1, 2);

      如此定义了一个名为a的数组,含有4个元素,2个string类型,2个数字类型。

    2. 数组元素的获取,[]{}

      通过数组下标(同C/C++也是从0开始)来访问数组的元素有2种方法,一个是用[],另一个是用{}。这2个方法是一样的,不管用哪种方法都可以访问数组元素。

      1. echo $a[2]; //输出1
      2. echo $a{1}; //输出Jim
    3. 数组元素的修改

      php支持对数组元素的修改,修改方法即通过[]或者{}访问对应的数组元素,然后将其赋予新的值即可。

      1. $a[1] = TTT”;
      2. echo $a{1}; //输出TTT,因为已经修改了。
    4. 数组元素的删除

      php支持对数组中某个元素的删除或对整个数组的删除的功能。通过unset();即可删除对应的元素。

      1. unset($a[1]); //删除了数组中的第二个元素,现在数组包含Tom,1,2
      2. unset($a); //删除了整个数组
  4. php循环

    1. for循环

      php中的for循环与C/C++相似,支持++操作符,但不支持+=,所以对于不是+1的循环,需要写成$i = $i + 3;

      1. for ($i = 0; $i <= 100; $i = $i + 10) {
      2. //……
      3. }
    2. foreach循环

      当需要循环整个数组时,写for循环可能会过于繁琐,所以php提供了一种特殊的循环方法,即foreach循环。写法如下:

      1. $a = array(“Tom”, Jim”, 1, 2, 3);
      2. foreach ($a as $i) {
      3. echo $i;
      4. }

    这样就可以将php数组中的所有元素都输出了。

    foreach (数组名 as 变量名),接下来对于数组中每个元素操作即对用户自己取变量名的变量操作即可,但不支持修改功能,类似与C/C++中的传值与传址的区别。

    1. while循环,endwhile

      php中的while循环有2种写法,普通的写法是都所知道的。

      1. while () {
      2. //……
      3. }

      类似于之前的switch,php中也有另外一种写法。

      1. while ():
      2. //……
      3. endwhile;

      if/else一样,while同时也支持这样while(1)或者while(true)的简化写法。

    2. do-while循环

      php中的do-while循环与C/C++一样。

      1. do {
      2. //……
      3. } while ();

      do-while也支持这样do-while(1)或者do-while(true)的简化写法。

    3. 循环嵌套

      php中支持各种循环的相互嵌套。

  5. php函数(1)

    1. 关于字符串的相关函数

      1. strlen(string)
      2. substr(string, start, length)
      3. strtoupper(string)
      4. strtolower(string)
      5. 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

      1. strpos("emily", "e"); // 0
      2. strpos("emily", "ily"); // 2
      3. strpos("emily", "zxc"); // false
    2. 关于数学的相关函数

      1. round(number(, n))
      2. rand(min, max)

      round函数用于对浮点数保留小数。

      round(number):这样写,默认对number保留为整数。

      round(number, n):这样写,对number保留n位小数。

      rand(min, max):此函数用于求给定范围[min, max]中的随机数。

    3. 关于数组的相关函数

      1. array_push(array, number/string)
      2. count(array)
      3. sort(array)
      4. rsort(array)
      5. join(stringarray)

      array_push(array, number/string):此函数用于对数组array尾端增加一个元素,可以为任意类型。

      count(array):此函数用于求数组array中元素的个数。

      sort(array):此函数用于将数组array中的元素按字典序从小到大排列。

      rsort(array):此函数用于将数组array中的元素按字典序从大到小排列。

      join(string, array):此函数用于将数组中的元素用string连接起来,并返回连接后的结果。

      1. $array = array(5, 3, 7 ,1);
      2. rsort($array);
      3. print join(":", $array);
      4. //输出 7:5:3:1
  6. php函数(2)

    1. 自定义函数

      php中允许用户定义自己所需的不同的函数,但不需要写函数类型。

      1. function Template() {
      2. //……
      3. }

      function 代表定义的是一个函数,Template为函数名,用户可以随意定义,不需要考虑函数的类型。

    2. 带形参的自定义函数

      在函数定义时,()之中可以为空,也可以添加形参,即称为带有形参的函数。

      1. function aboutMe($name, $age) {
      2. echo "Hello! My name is " . $name . ", and I am " . $age . " years old.";
      3. }

      此函数定义了两个形参,分别为$name$age。调用时,aboutMe("wsy", 22);即可,也可以传入其他变量名。

    3. 自定义函数的返回值

      php的函数虽然没有函数类型,但是可以返回任意类型的值。

      1. function returnName() {
      2. return "wsy";
      3. }

      return后可以跟变量也可直接跟常量。

  7. php对象(1)

    1. 类的定义、对象的定义

      同C++中类的定义相同,php的类定义如下。

      1. class Dog {
      2. public $name;
      3. public $numLegs = 4;
      4. //可以定义公有成员,可以对其赋值也可以对其不赋值
      5. //……
      6. }

      建立一个类的对象。

      $dog = new Dog();

      调用公有成员。

      1. echo $dog->numLegs;
      2. //name因为未赋值,若要输出name的话,则不会输出任何东西。
    2. 构造器的定义及调用

      在类可以用__construct()来定义构造器。

      1. class Dog {
      2. public $name;
      3. public $numLegs = 4;
      4. public function __construct($name) {
      5. //构造器可以带形参也可以不带形参
      6. $this->name = $name;
      7. //若要对类内成员赋值,需用$this->成员名 的形式赋值。
      8. }
      9. //……
      10. }

      构造器在定义对象时自动被调用。

      1. $dog = new Dog(“Tom”);
      2. echo $dog->name;
      3. //输出Tom。
    3. 方法的定义及调用

      在类内可以自定义方法。

      1. class Dog {
      2. public $name;
      3. public $numLegs = 4;
      4. public function __construct($name) {
      5. $this->name = $name;
      6. }
      7. public function greet() {
      8. //方法可以带形参也可以不带
      9. return Hello, my name is . $name . “.”;
      10. //方法可以有返回值也可以没有
      11. }
      12. //……
      13. }

      方法的调用类似公有成员的调用,()不可省略。

      1. $dog = new Dog(“Tom”);
      2. echo $dog->greet();
      3. //输出Hello, my name is Tom.
  8. php对象(2)

    1. 类的继承

      php支持类的继承。

      1. class Shape {
      2. public $hasSides = true;
      3. }
      4. class Square extends Shape {
      5. //Square类继承了Shape类
      6. }

      通过property_exists()函数可以查看某个类是否包含某个方法或者私有成员。

      1. $square = new Square();
      2. if (property_exists($square, "hasSides")) {
      3. echo "I have sides!";
      4. }
      5. //有输出,输出I have sides!

      php的类继承与C++中的类继承一样,子类会继承父类的所以公有成员和方法。

    2. 重写父类方法,final

      php支持在子类中重写父类中的方法,并且在调用时调用的为子类重写后的方法。

      1. class Vehicle {
      2. public function honk() {
      3. return "HONK HONK!";
      4. }
      5. }
      6. class Bicycle extends Vehicle {
      7. public function honk() {
      8. //父类方法的重写
      9. return "Beep beep!";
      10. }
      11. }

      调用子类方法

      1. $bicycle = new Bicycle();
      2. echo $bicycle->honk();
      3. //将输出Beep beep!

      若想要在子类重写后,仍调用的为父类继承来的方法。只需在父类方法前增加final关键字。若将上面父类Vehicle中的honk方法改为如下形式,其他保持不变。

      1. final public function honk() {
      2. //……
      3. }

      最终程序将输出HONK HONK!

    3. const::

      php类中支持const常量,即定义时就需要赋值,一旦赋值后不允许修改。

      1. class Cat {
      2. const numLegs = 4;
      3. //不需要添加$符号
      4. }

      对于const常量的访问,不能与之前公有成员的访问方法一样,而应该用::来访问。因为常量是针对每个类而言,所以应采取如下形式访问。

      1. echo Cat::numLegs;
      2. //输出4
    4. static

      php类支持静态方法和静态变量,允许用户在不创建对象而可以访问成员和方法。

      1. class Person {
      2. public static $isAlive = "Yep!"
      3. public static function greet() {
      4. echo "Hello there!";
      5. }
      6. }

      调用时,采取如下形式访问。

      1. echo Person::$isAlive;
      2. //输出Yep!
      3. Person::greet();
      4. //输出Hello there!

Php 笔记的更多相关文章

  1. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  7. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  8. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  10. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. ubuntu 14.04 重复登录问题解决方法

    为了远程登录,装了xubunt后出现重复登录的问题,尝试了多种方法,后来用下面的命令解决了 chown username:username .Xauthority 参考资料:http://askubu ...

  2. 开始学java痛苦之旅开启 12-31日 第一章节笔记

    1.JDK,Java development kit,开发环境(JDK)2.JRE 是Java运行环境 (Java Runtime Enviroment) 的缩写 我的电脑--属性--工具--文件夹选 ...

  3. DATE 日期格式

    Oracle TO_DATE 日期格式 Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02   13:45:25为例)           ...

  4. 日常维护sql

    修复mysqlcheck -u -p --repair  pmdb prefix="/export/data/mysql/bin/mysql -u -p -e" domain=机房 ...

  5. vs快捷方式

    项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...

  6. Appium移动自动化测试之安装Android SDK和JDK

    安装好Appium后,我们来继续安装Android SDK和JDK,JDK的安装以及环境变量配置这边就不再多说了,毕竟都是从事自动化的,这个应该是so easy.闲言少续,我们来操作Android S ...

  7. <button> 标签 id 与 function 重复时发生的问题

    今天遇到一种情况,在调用js自定义方法的时候,总是提示“import:660 Uncaught TypeError: ... is not a function”. 仔细检查了代码,并没有问题.甚至把 ...

  8. java程序故障排查脚本之——CPU占用高

    root@ubuntu-B85M-D3H:~/tmp# cat java_Analy.sh #!/bin/bash T=`ps -mp $1 -o THREAD,tid,time|sort -k 2 ...

  9. JS浮点数的加减乘除运算

    文章来源地址:http://blog.csdn.net/lyd518/article/details/7236464 转载请注明出处,尊重作者劳动成果,谢谢!问题这样的: 37.5*5.5=206.0 ...

  10. 使用re-sign.jar对apk进行重签名

    准备: ① re-sign.jar重签名工具:(下载地址为:http://troido.de/downloads/category/1): ② 待重签名的apk:      重签名步骤: ① 右键re ...