热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Php札记

Php札记:PHP笔记Mysql--------------------------------------------------------------------------
Php 笔记
  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++一样,

      switch ($a) { case 1: echo 1; break; default: echo 2;}

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

      switch ($a) : case 1: echo 1; break; default: echo 2;endswitch;

  3. php数组

    1. 数组的定义

      因为php对于变量是自动匹配类型,则php的数组对于不同类型的变量也是一视同仁,即php的数组可以添加任何类型的变量在一个数组当中。
      $a = array(“Tom”, “Jim”, 1, 2);
      如此定义了一个名为a的数组,含有4个元素,2个string类型,2个数字类型。

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

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

      echo $a[2]; //输出1echo $a{1}; //输出Jim

    3. 数组元素的修改

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

      $a[1] = “TTT”;echo $a{1}; //输出TTT,因为已经修改了。

    4. 数组元素的删除

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

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

  4. php循环

    1. **`for`循环**

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

      for ($i = 0; $i <= 100; $i = $i + 10) { //……}

    2. **`foreach`循环**

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

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

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

    1. **`while`循环,`endwhile`**

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

      while () { //……}

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

      while (): //……endwhile;

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

    2. **`do-while`循环**

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

      do { //……} while ();

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

    3. **循环嵌套**

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

  5. php函数(1)

    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"); // 0strpos("emily", "ily"); // 2strpos("emily", "zxc"); // false

    2. **关于数学的相关函数**

      round(number(, n))rand(min, max)

      round函数用于对浮点数保留小数。
      round(number):这样写,默认对number保留为整数。
      round(number, n):这样写,对number保留n位小数。
      rand(min, max):此函数用于求给定范围[min, max]中的随机数。

    3. **关于数组的相关函数**

      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

  6. **php函数(2)**

    1. **自定义函数**

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

      function Template() { //……}

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

    2. **带形参的自定义函数**

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

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

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

    3. **自定义函数的返回值**

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

      function returnName() { return "wsy";}

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

  7. **php对象(1)**

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

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

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

      建立一个类的对象。
      $dog = new Dog();
      调用公有成员。

      echo $dog->numLegs;//name因为未赋值,若要输出name的话,则不会输出任何东西。

    2. **构造器的定义及调用**

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

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

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

      $dog = new Dog(“Tom”);echo $dog->name;//输出Tom。

    3. **方法的定义及调用**在类内可以自定义方法。

      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.

  8. **php对象(2)**

    1. **类的继承**

      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++中的类继承一样,子类会继承父类的所以公有成员和方法。

    2. **重写父类方法,`final`**

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

      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!

    3. **`const`和`::`**

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

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

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

      echo Cat::numLegs;//输出4

    4. **`static`**

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

      class Person { public static $isAlive = "Yep!" public static function greet() { echo "Hello there!"; }}

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

      echo Person::$isAlive;//输出Yep!Person::greet();//输出Hello there!


推荐阅读
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 用户登录 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 开发笔记:里氏替换原则
    本文由编程笔记#小编为大家整理,主要介绍了里氏替换原则相关的知识,希望对你有一定的参考价值。1.定义:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2, ... [详细]
  • 二进制空间权重矩阵_Stata: 空间权重矩阵的构建
    作者:潘星宇(清华大学)Stata连享会:知乎|简书|码云|CSDNStata连享会计量专题||公众号合集直播:动态空间面板|空间双差分S ... [详细]
  • linux location root访问文件夹404_Linux下yum安装PHP7.2+Nginx+Mysql
    一.安装NGINX1.先查看是否安装了第三方软件库:yumlistinstalled|grepepel-release或rpm-qepel-release如果已经安装 ... [详细]
author-avatar
书友53537817
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有