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. python 2048游戏控制器

    2048游戏控制器 1 evaluate 要用程序来处理就得对现实的问题进行量化,用数字来表示.在2048游戏中,我们的输入是一个棋局,让我们输出一个移动方向,这样我们需要对棋局进行量化,即我们要评估 ...

  2. application.yaml配置文件

    spring boot还支持yaml格式的配置文件.这种格式文件是JSON超集文件格式,其以数据为中心,扩展名可是是yml和yaml. yaml格式文件以key/value的格式配置属性,使用缩进控制 ...

  3. 扫盲贴:2021 CSS 最冷门特性都是些啥?

    最近几年 CSS 界的大事之一是每年年底的 <State Of CSS>,也就是 CSS 现状调查,去年年底发布了<State Of CSS 2021>.其中关于特性这一章,会 ...

  4. 关于maven依赖中的scope的作用和用法

    举例如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s ...

  5. 分布式缓存NCache使用

    NCache作为缓存优点币Redis有优势,但是收费的所以选用的不多吧.下面简单实操一下: 首先官网下载组件NCache Download Center (alachisoft.com),这里选择企业 ...

  6. Java8新特性系列-默认方法

    Java8 Interface Default and Static Methods 原文连接:Java8新特性系列-默认方法 – 微爱博客 在 Java 8 之前,接口只能有公共抽象方法. 如果不强 ...

  7. 网络测试技术——802.1X原理

    一.以太网优点缺点 1.以太网优点 (1)即插即用,简单快捷 (2)任何一台电脑只要接入网络便有访问网络资源的权限 2.以太网缺点 (1)缺乏安全认证机制(二层) (2)电脑接到交换机上就能访问网络 ...

  8. 3款自助型BI分析平台功能盘点,帮助你预测商业发展方向

    在快速发展的今天,商业智能BI已经不同于传统的商业智能BI,商业智能BI已经逐渐转变为自助和业务主导的模式,自助BI分析平台应运而生,自助BI分析平台逐渐成为许多企业的选择. 自助式BI分析平台与传统 ...

  9. Java刷题时常用的标准库数据结构和相应算法

    目录 一.线性表(广义的数组) 1. 数组 一维数组的定义和初始化 二维数组的定义和初始化 Arrays工具类的一些常用方法 2. List接口容器 对象的构建 读写和插入删除数据 排序 反转数组 二 ...

  10. 接口java.util.Map的四个实现类HashMap Hashtable LinkedHashMap TreeMap

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别 :java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMa ...