1索引数组

$fruit = array("苹果","香蕉","菠萝");

print_r($fruit);
  1. 索引数组的初始化,有三种方式:

    • $arry[0] = "苹果";

    • array('0'=>"苹果");

    • array('苹果'),系统默认从索引0开始

  2. 取出索引数组中的值 $fruit0 = $fruit['0'];

  3. for的使用,for的使用与C类似

  4. foreach的使用

foreach($fruit as $key=>$value)
{   echo '第'.$key.'值是:'.$value; }

2关联数组

关联数组指的是键是字符串的数组

$fruit = array('apple'=>'苹果','orange'=>'橘子')

print_r($fruit);

关联数组的创立


$arr = array(); $array['apple'] = '苹果';

或者


$arr = array('apple'=>"苹果");

取关联数组的值

$value = $fruit['banana'];

foreach($fruit as $key=>$value);

3PHP中的对象

定义一个类

class Car {
var $name = '汽车';
function getName() {
return $this->name;
}
}
$car = new Car();
$car->name = '宝马';
echo $car->getName();

同样类中的变量有public,private,protect

PHP在类中使用__construct()定义一个构造函数

 class Car {
  function __construct()
  {
     print "构造函数被调用\n";
  }
  function __destruct()
  {
    print "析构函数被调用\n";
  }
}

静态属性与方法可以在不实例化类的情况下调用

直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。

静态方法也可以通过变量进行动态调用

$func = 'getSpeed';
$classname = 'Car'
echo $className::$func();

静态方法不能用this调用,可以用self,parent加上::来实现

方法的重载

属性的重载通过使用__set,__get,__isset,_unset

ublic function __set($key, $val) {
$this->ary[$key] = $val;
} public function __get($key) {
if (isset($this->ary[$key])) {
return $this->ary[$key];
}
return null;
}

如果调用的方法不存在的时候,将会调用__call方法,如果是静态方法,将会调用__callstatic方法

public function __call($name, $args) {
if ($name == 'speedUp') {
$this->speed += 10;
}
}

类和对象的高级特性

同一个类的两个实例的所有属性都相等时,可以用==来判断

$a = new Car();
$b = new Car();
if ($a == $b) echo '=='; if ($a === $b) echo '===';

同一个类的两个变量是否为同一个对象的引用的时候,可以用===来判断

对象的复制,用关键字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;
var_dump($b);

对象序列化

可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。

$a = new Car();
$str = serialize($a); //对象序列化成字符串
echo $str.'<br>';
$b = unserialize($str); //反序列化为对象
var_dump($b);

半吊子菜鸟学Web开发 -- PHP学习 1-基础语法的更多相关文章

  1. 半吊子菜鸟学Web开发 -- PHP学习5-数据库

    数据库 1 进行数据库操作的步骤 连接数据库 mysqli_connect 选择数据库 mysqli_select_db 设置文件编码 mysqli_query("set name utf- ...

  2. 半吊子菜鸟学Web开发 -- PHP学习 4 --异常

    PHP异常处理 1 抛出一个异常 与Python的try except类似,PHP用try catch来捕获异常 基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Except ...

  3. 半吊子菜鸟学Web开发 -- PHP学习3-文件

    目录 1 PHP文件系统 1.1 PHP文件的读取 1.4 获得文件的大小 1.5 PHP写入文件 1.6 删除文件 1 PHP文件系统 1.1 PHP文件的读取 文件读取的函数是file_get_c ...

  4. 半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session

    1正则表达式 1.1基本的匹配字符串 $p = '/apple/'; $str = "apple banna"; if (preg_match($p, $str)) { echo ...

  5. 半吊子菜鸟学Web开发1 --配置开发环境

    先说说我自己的情况,我算是一个半吊子菜鸟,对web开发熟练度为0,但是对熟悉C++和Python 所以这里开始记录我学习Web开发的历程,看看我这里学习的程序,能够学到什么地方. 首先是配置环境,我的 ...

  6. 半吊子菜鸟学Web开发6 -- Vscode开发环境配置

    1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...

  7. 半吊子菜鸟学Web开发2 --JavaScript学习1

    JavaScript是一种类C的语言,对于我来说学起来还是蛮轻松的 1 输出 console.log(**); 相当于print console.assert(*);弹窗 2 变量 JS是动态变量 类 ...

  8. 半吊子菜鸟学Web开发4 --Html css学习2

    1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...

  9. 半吊子菜鸟学Web开发3 --Html css学习1

    1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html>    <head& ...

随机推荐

  1. MySQL架构原理之存储引擎InnoDB_Undo Log

    Undo:意为撤销或取消,以撤销操作为目的,返回某个指定状态的操作. Undo Log:数据库事务开始之前会将要修改的记录存放到Undo日志里,当事务回滚时或者数据库崩溃时可以利用Undo日志撤销为提 ...

  2. Dubbo扩展点应用之一filter及@Activate自激活使用

    与很多框架一样,Dubbo也存在拦截(过滤)机制,可以通过该机制在执行目标程序前后执行我们指定的代码.Dubbo中Filter只是Dubbo提供的可自定义扩展的扩展点之一.通过该扩展点地理解,可以触类 ...

  3. axios请求方式

    `// 使用默认进行请求(默认是get) axios({ url: "http://localhost:9999/student/student/getAllStudent" }) ...

  4. 『无为则无心』Python面向对象 — 55、多层继承和继承中的私有成员

    目录 1.Python支持多层继承 (1)多层继承实现 (2)多层继承和多重继承区别 2.继承中的私有成员 (1)继承中父类私有属性和私有方法 (2)获取和修改私有属性值 1.Python支持多层继承 ...

  5. python-利用shutil模块rmtree方法可以将文件及其文件夹下的内容删除

    import shutil import os image_path = os.path.join(os.path.dirname(__file__),'image') # 如果存在image目录则删 ...

  6. IPC$管道的利用与远程控制

    实验目的 通过实验了解IPC$攻击的原理与方法. 实验原理 IPC$攻击的相关原理 IPC$(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开 ...

  7. 简单excel饼状图怎么做,bi工具怎么做饼状图

    饼状图是为了在一个整体体现个体所占的比例,比如一块蛋糕每人各分多大份.了解了饼状图的含义,就来学习饼状图怎么做吧. 首先,我们准备excel表格饼状图的初始数据 然后选择excel表格上方的插入,选择 ...

  8. ASP.NET Core 6框架揭秘实例演示[14]:日志的进阶用法

    为了对各种日志框架进行整合,微软创建了一个用来提供统一的日志编程模式的日志框架.<日志的基本编程模式>以实例演示的方式介绍了日志的基本编程模式,现在我们来补充几种"进阶" ...

  9. 【C# 线程】interLocked锁

    overview 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁).SpinLocked(自旋锁).易变构造(volatile关键字.volatile类.Thr ...

  10. c++ stringstream 实现字符串与int之间的转换

    #include <iostream> #include <sstream> using namespace std; int main() { //string转int st ...