半吊子菜鸟学Web开发 -- PHP学习 1-基础语法
1索引数组
$fruit = array("苹果","香蕉","菠萝");
print_r($fruit);
索引数组的初始化,有三种方式:
$arry[0] = "苹果";
array('0'=>"苹果");
array('苹果'),系统默认从索引0开始
取出索引数组中的值
$fruit0 = $fruit['0'];for的使用,for的使用与C类似
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-基础语法的更多相关文章
- 半吊子菜鸟学Web开发 -- PHP学习5-数据库
数据库 1 进行数据库操作的步骤 连接数据库 mysqli_connect 选择数据库 mysqli_select_db 设置文件编码 mysqli_query("set name utf- ...
- 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
PHP异常处理 1 抛出一个异常 与Python的try except类似,PHP用try catch来捕获异常 基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Except ...
- 半吊子菜鸟学Web开发 -- PHP学习3-文件
目录 1 PHP文件系统 1.1 PHP文件的读取 1.4 获得文件的大小 1.5 PHP写入文件 1.6 删除文件 1 PHP文件系统 1.1 PHP文件的读取 文件读取的函数是file_get_c ...
- 半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session
1正则表达式 1.1基本的匹配字符串 $p = '/apple/'; $str = "apple banna"; if (preg_match($p, $str)) { echo ...
- 半吊子菜鸟学Web开发1 --配置开发环境
先说说我自己的情况,我算是一个半吊子菜鸟,对web开发熟练度为0,但是对熟悉C++和Python 所以这里开始记录我学习Web开发的历程,看看我这里学习的程序,能够学到什么地方. 首先是配置环境,我的 ...
- 半吊子菜鸟学Web开发6 -- Vscode开发环境配置
1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...
- 半吊子菜鸟学Web开发2 --JavaScript学习1
JavaScript是一种类C的语言,对于我来说学起来还是蛮轻松的 1 输出 console.log(**); 相当于print console.assert(*);弹窗 2 变量 JS是动态变量 类 ...
- 半吊子菜鸟学Web开发4 --Html css学习2
1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...
- 半吊子菜鸟学Web开发3 --Html css学习1
1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html> <head& ...
随机推荐
- WPF之复选MVVM TreeView(TreeView+CheckBox)
需求背景: 当我们用到权限菜单栏时权限菜单栏属于递归效果,我们需要用到TreeView+CheckBox进行组合复选开发时,我们需要解决此类问题时怎么办,那么就引出今天的小笔记内容 实现方式: 下载M ...
- Visual Studio Code 配置C、C++ 文件debug调试环境
目录 vscode C/C++ Extension Pack 插件安装 vscode windows 端 debug 配置 window MinGW 环境安装 windows 端 C.CPP 单文件 ...
- jmeter参数化文件路径问题
问题 win下做好的带参数化文件的脚本,放到linux下运行,由于参数化文件路径不正确,导致脚本运行失败,如果解决这个问题呢? 方案一:参数化路径 比如,参数化文件我放到jmeter的bin目录下,参 ...
- ssh远程端口转发&&windows系统提权之信息收集&&网安工具分享(部分)
一.ssh远程端口转发 背景:当我们在渗透过程中,获取到内网的一台仅有内网IP的服务器后,我们可以通过ssh隧道,将内网某个主机的端口进行远程转发 1.网络拓扑图 假设获取的服务器为web服务器,we ...
- Nacos2.X源码阅读总结
前言 Nacos是一个Alibaba出品的高性能微服务时代产出的组件,集注册和配置中心为一体.那么Nacos为什么这么高性能呢?总结以下几点: 1:基于阿里自研的distro协议进行Nacos把不同节 ...
- 【C# 线程】并发编程的基石——CAS机制
其实Java并发框架的基石一共有两块,一块是本文介绍的CAS,另一块就是AQS,后续也会写博客介绍. 什么是CAS机制 CAS机制是一种数据更新的方式.在具体讲什么是CAS机制之前,我们先来聊下在多线 ...
- C# $的简介
无意中看到这个$格式字符串,然后学习一下.$是C#6.0的新特性. 比如我们以前是这么做的,内插字符串. var anInt = 1; var aBool = true; var aString = ...
- linux模拟cpu占用100%脚本
转至:https://www.cnblogs.com/opma/p/11607434.html 脚本如下: #! /bin/sh # filename killcpu.sh if [ $# -ne 1 ...
- 接口自动化测试框架(Java 实现)
目录 需求分析 开发设计 分层与抽象 技术选型 主要类设计 测试文件设计 工程目录设计 工程实现 github 地址 运行示例 需求分析 需求点 需求分析 通过 yaml 配置接口操作和用例 后续新增 ...
- VUE-表单验证
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...