博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP基础学习笔记(一)
阅读量:6596 次
发布时间:2019-06-24

本文共 3834 字,大约阅读时间需要 12 分钟。

1、初步了解PHP

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

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

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

 

+ 输出多条语句

 

2、变量
+ 用$标识符定义变量:$var
+ 规则:变量名必须以字母或下划线"_"开头
        变量名只能由字母、数字、以及下划线"_"组成,还可以包含汉字
        变量名不能包含空格,当变量名由多个单词组成时,可以用下划线隔开,也可以用驼峰式命名法来命名
  注:php中的变量名区分大小写
 
+ php中的数据类型:4种标量类型
                            2种复合类型
                            2种特殊类型
+ var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.
+ 当变量值和字符串一起输出时,用双引号括起来.
+ 当字符串很长时,可以用Heredoc结构的形式来输出字符串:

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

3、常量
+ 用define定义常量:

";echo PII;//3.14?>

 

+ 系统自定义常量,可以直接拿来使用:
   _FILE_:当前文件在服务器的物理位置
   _LINE_:当前代码行数
   PHP_VERSION:当前解析器的版本号
   PHP_OS:当前PHP版本的操作系统名称
   
+ 常量取值的两种方式:
  1、直接使用常量名
  2、用constant函数

 

+ 判断常量是否被定义:defined函数
4、运算符
+ php中的2种赋值运算符:"="(将值拷贝一份赋值给另一个)和"&"(引用赋值,共享内存)
  $a = $b;或$a = &$b
 
+ 比较运算符:== === != <> !=== < > <= >=
 注:php中的等于==和全等===规则和JavaScript中的类似
 
+ 逻辑运算符:逻辑与(and、&&),逻辑或(or、||),逻辑异或(xor),逻辑非(!)
+ 字符串连接运算符:"."或".="
+ 错误控制运算符:@
 
+ 算数运算符、三元运算符和其他语言类似
5、语言结构语句
+ 遍历数组的两种方式:只取数字不取下标foreach(数组 as $v)
                      取数字和下标foreach(数组 as $r => $v)
                      

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

 

6、数组
+ 数组分为两种:索引数组和关联数组
+ 数组基本操作:

'香蕉');$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中访问对象属性的方法或属性用->
+ 创建对象的方法:

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;    //静态方法中,$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中的重载

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

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 = new Car();if ($a == $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 == $b) echo '==';   //trueif ($a === $b) echo '==='; //false

 + 通过serialize()将对象序列化成字符串,unserialize()将字符串反序列化成对象

 

2016.9.28更新

 
   
 

转载于:https://www.cnblogs.com/yy95/p/5858150.html

你可能感兴趣的文章
指静脉识别:一个“销声匿迹”了近二十年的多模态生物识别技术要“重出江湖”...
查看>>
小议阿里云"数加"平台对企业有何帮助?
查看>>
《C语言程序设计进阶教程》一2.3.2 函数实参
查看>>
智能硬件的未来发展:自主研发和AI将成为关键
查看>>
“聚光灯”下的数梦工场 首提“新型互联网”战略
查看>>
IBM预通过R语言扩展 简化Watson系统的应用
查看>>
施耐德电气推出EcoStruxure架构与平台,开启转型之路
查看>>
NVIDIA与阿里云达成战略合作 共同拓展深度学习市场
查看>>
数据中心机房对环境的新要求
查看>>
一个页面标题和过滤输出的解决方案(下)
查看>>
JSP连接access数据库
查看>>
Loadrunner监控服务器资源
查看>>
Pandas:按条件进行行选择
查看>>
spring boot 自定义规则访问获取内部或者外部静态资源图片
查看>>
Object类
查看>>
【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
查看>>
Coding打坐
查看>>
springmvc + mybatis + ehcache + redis架构
查看>>
使用rollup打包库的一种基本配置
查看>>
Spring Boot 学习笔记(4):配置properties(2)
查看>>