thinkPHP学习笔记

1、初步了解PHP

  • php是一种运行在服务端的跨平台的脚本语言。

  • php语法:

1

<?php echo "welcome!"; ?>

php像javascript语言一样可以将标签代码放在html中,echo是php中的输出关键字

  • php中的字符串可以用单引号也可以用双引号,字符串连接符是".“号和其他语言用”+"不同

1

<?php echo 'youyi'."最美"; ?>
  • 输出多条语句
<?php echo "欢迎同学们!"; echo "Welcome" . " to you!"; echo 1+2+3+4+5; ?>

2、变量

  • 标识符定义变量:标识符定义变量:var

  • 规则:变量名必须以字母或下划线"“开头
    变量名只能由字母、数字、以及下划线”
    "组成,还可以包含汉字
    变量名不能包含空格,当变量名由多个单词组成时,可以用下划线隔开,也可以用驼峰式命名法来命名
    注:php中的变量名区分大小写

  • php中的数据类型:4种标量类型
    2种复合类型
    2种特殊类型

  • var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.

  • 当变量值和字符串一起输出时,用双引号括起来.

  • 当字符串很长时,可以用Heredoc结构的形式来输出字符串:

<?php $string1= <<

定界符<<< 来表示字符串,god是自己可以随意定义的标识符,最后用同样的标识符来做结尾。

3、常量

  • 用define定义常量:
<?php $p = "PII"; define("PI",3.14); define($p,3.14); echo PI;//3.14 echo "
"; echo PII;//3.14 ?>
  • 系统自定义常量,可以直接拿来使用:
    FILE:当前文件在服务器的物理位置
    LINE:当前代码行数
    PHP_VERSION:当前解析器的版本号
    PHP_OS:当前PHP版本的操作系统名称

  • 常量取值的两种方式:
    1、直接使用常量名
    2、用constant函数

<?php $p=""; //定义圆周率的两种取值 define("PI1",3.14); define("PI2",3.142); //定义值的精度 $height = "中"; //根据精度返回常量名,将常量变成了一个可变的常量 if($height == "中"){ $p = "PI1"; }else if($height == "低"){ $p = "PI2"; } $r=1; $area = constant($p)*$r*$r; echo $area; ?>
  • 判断常量是否被定义:defined函数

4、运算符

  • php中的2种赋值运算符:"="(将值拷贝一份赋值给另一个)和"&"(引用赋值,共享内存)
    $a = b;或b;或b;a = &$b

  • 比较运算符:== === != <> !=== < > <= >=
    注:php中的等于和全等=规则和JavaScript中的类似

  • 逻辑运算符:逻辑与(and、&&),逻辑或(or、||),逻辑异或(xor),逻辑非(!)

  • 字符串连接运算符:".“或”.="

  • 错误控制运算符:@

  • 算数运算符、三元运算符和其他语言类似

5、语言结构语句

  • 遍历数组的两种方式:只取数字不取下标foreach(数组 as $v)
    取数字和下标foreach(数组 as $r => $v)
<?php $students = array( '2010'=>'令狐冲', '2011'=>'林平之', '2012'=>'曲洋', '2013'=>'任盈盈', '2014'=>'向问天', '2015'=>'任我行', '2016'=>'冲虚', '2017'=>'方正', '2018'=>'岳不群', '2019'=>'宁中则', );//10个学生的学号和姓名,用数组存储 //使用循环结构遍历数组,获取学号和姓名 foreach($students as $r => $v) { echo $r." ".$v;//输出(打印)姓名 echo "
"; } ?>

6、数组

  • 数组分为两种:索引数组和关联数组
  • 数组基本操作:
<?php //索引数组赋值3种方式 $fruit = array("苹","梨子",'3'=>'香蕉'); $fruit[2]='柿子'; print_r($fruit);//Array ( [0] => 苹 [1] => 梨子 [3] => 香蕉 [2] => 柿子 ) //访问索引数组内容 echo '
'; print_r($fruit['0']);//苹 //遍历数组2种方式 for($i=0;$i<4;$i++){ echo '
数组第'.$i.'值是:'.$fruit[$i]; } foreach($fruit as $k=>$v){ echo '
第'.$k.'值是:'.$v; } //关联数组,关联数组和索引数组的基本操作一样 $fruit2 = array( 'apple' => "苹果", 'banana' => "香蕉", 'pineapple' => "菠萝" ); echo '
'; print_r($fruit2); ?>

7、函数

  • 自定义函数
  • 可变函数
  • 内置函数
  • 判断函数是否存在-function_exists() (检测类是否存在-class_exists;检测文件是否存在-file_exists)

8、类和对象

  • php中访问对象属性的方法或属性用->
  • 创建对象的方法:
<?php class Car { public $name = '汽车'; public function getName() { return $this->name; } } //1.通过new关键字来创建 $car = new Car(); echo $car->getName(); //2.通过变量来创建 $className = 'Car'; $car = new $className(); echo "
"; echo $car->getName(); ?>
  • php中也有三种访问控制的关键字:private、public、protected

//默认为公有,公有的类成员可以在任何地方被访问,保护的类成员可以被自身、子类、父类访问,私有的类成员只能被其定义所在的类访问
//如果构造函数定义成了私有方法,则不允许直接实例化对象,可以通过静态方法进行实例化
class Car {
private $speed = 0;//属性必须定义访问控制

public function getSpeed() {
    return $this->speed;
}
 
protected function speedUp() {
    $this->speed += 10;
}
 
//增加start方法,使他能够调用受保护的方法speedUp实现加速10
public function start() {
    $this->speedUp();
     
}

}
$car = new Car();
$car->start();
echo $car->getSpeed();//10

  • 面向对象中function被称之为方法,面向过程中function称为函数

  • 关键字static修饰的方法为静态方法,不需要实例化,直接用::访问(类名::方法名)

class Car {
private static speed=10;//静态方法中,speed = 10; //静态方法中,speed=10;//,this伪变量不允许使用。可以使用self(自己的),parent(父类的),static在内部调用静态方法与属性
public function getSpeed() {
return self::$speed;
}

//在这里定义一个静态方法,实现速度累加10
public static function speedUp() {
    return self::$speed+=10;
}

}

$car = new Car();
Car::speedUp(); //调用静态方法加速
echo $car->getSpeed(); //调用共有方法输出当前的速度值

  • 构造函数和析构函数
<?php class Car { //增加构造函数与析构函数 function _construct() { print "构造函数\n"; } function _destruct() { print "析构函数\n"; } } class Truck extends Car { function _construct() { print "子类构造函数\n"; parent::_construct();//调用父类构造函数 } } $car = new Truck();//会调用子类构造函数 unset($car);//销毁对象会调用析构函数 ?>
  • php中的重载

    方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。

<?php class Car { public $speed = 10; //在这里使用重载实现speedDown方法 //注意call前面的横杠是两个下横杠加起来的 //$name是不存在的函数名,$args是不存在的函数中的参数 public function __call($name, $args) { if($name == 'speedUp') { $this->speed += 10; } else if($name == 'speedDown') { $this->speed -= 10; } } } $car = new Car(); $car->speedDown(); //调用不存在的speedDown方法 echo $car->speed; ?>
  • php中的"“和”="

    判断同一个类的两个实例中的属性是否相等用==

    判断两个变量是否为同一个对象的引用时用 ===

class Car {
}
$a = new Car();
b=newCar();if(b = new Car(); if (b=newCar();if(a == b)echo′==′;//trueif(b) echo &#x27;==&#x27;; //true if (b)echo==;//trueif(a === $b) echo ‘===’; //false

  • 通过关键字clone来复制对象,它会调用__clone()方法

class Car {
public $name = ‘car’;

public function __clone() {
    $obj = new Car();
    $obj->name = $this->name;
}

}
$a = new Car();
$a->name = ‘new car’;
$b = clone a;if(a; if (a;if(a == b)echo′==′;//trueif(b) echo &#x27;==&#x27;; //true if (b)echo==;//trueif(a === $b) echo ‘===’; //false

  • 通过serialize()将对象序列化成字符串,unserialize()将字符串反序列化成对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值