php1
正则表达式
$p = '/name:(\w+\s?\w+)/';
$str = "name:steven jobs";
preg_match($p, $str, $match);
echo $match[]; //结果为:steven jobs \w: 任意字符 // s\w s开头的任意字符(\word)
\s: 任意空白 // \space
+: 1次或多次 // \w+ 连续匹配多个 任意大小写字符和数字
?: 0次或1次 *: 0次或多次
/: 分隔符
\: 转义符
\d: 数字
[]: 一个整体
(): 一个整体
{}: 量词定义
^: 开始位置
$: 结束位置
[^]: 字符类取反 // [^\s]+ 连续匹配多个 任意非空白字符
.: 匹配除\n(换行符)外的任意字符 //想要用它来表示真正意义上的“.” ,需要加"\"转义符 a.*b 匹配最长的以a开始,以b结束的字符串 如:搜索aabab,返回:aabab
a.*?b 匹配最短的以a开始,以b结束的字符串 如:搜索aabab,返回:aab,ab
类和对象
静态属性和方法调用:内部 self :: $静态属性
外部 类名 :: 静态方法
非静态属性和方法调用:$this->属性/方法
子类调用父类方法:parent::functionName()
serialize 对象序列化为字符串
unserialize 反序列化为对象
$str = serialize($a); //O:3:"Car":1:{s:4:"name";s:3:"car";}
$obj = unserialize($str); //object(Car)#2 (1) { ["name"]=> string(3) "car" }
实例化一个对象 (定义一个类Car,并且实例化一个Car对象car,类的实例叫对象,通过new关键词创建)
class Car {
}
$car = new Car();
<?php class Car {
public $speed = ;
public function speedUp(){
$this->speed += ;
return $this->speed; //如果没有,则结果为 50
}
}
class Truck extends Car {
public function speedUpAdd()
{
$this->speed = parent::speedUp() + ;
}
}
$car = new Truck();
$car->speedUpAdd();
echo $car->speed; //
<?php class Car //定义类
{
private static $speed = ; //私有 静态 属性 speed public static function getSpeed() //公有 静态 方法 getSpeed
{
return self::$speed; //静态方法中,$this不允许使用,可使用self,parent,static在内部通过 :: 调用静态属性和方法
} public static function speedUp()
{
return self::$speed += ; //静态方法中,使用self通过 :: 调用静态属性speed
}
} class BigCar extends Car
{
public static function start()
{
parent::speedUp(); //子类调用父类方法:parent::functionName()
}
} BigCar::start(); //通过 类名::方法名 调用静态方法 (静态方法可以在不实例化类的情况下直接调用)
echo BigCar::getSpeed();
<?php
class Car {
function __construct(){ //__construct 构造函数,对象被构造(实例化)时调用
print "构造函数被调用\n";
}
function __destruct(){ //__destruct 析构函数,对象的所有引用被删除,或对象被显示的被销毁时调用
print "析构函数被调用\n";
}
}
$car = new Car();
参考:https://www.imooc.com/code/542
<?php
class Car { //定义类
public $speed = ; //公有属性 speed
public function speedUp(){ //公有方法 speedUP
return $this->speed += ;
}
}
$car = new Car(); //实例化Car对象(car)
echo $car->speedUp(); //对象(car)调用方法 speedUP //
<?php
class Car{ // 定义类
var $name = '汽车'; // 类中包含:属性、方法
function getName(){ // 方法:定义在类(对象)里边的函数
return $this->name;
}
}
$car = new Car(); // new 关键字,实例化对象
echo $car->getName();
echo、print 简单输出(string、int)
print_r() 、var_dump() 复杂输出(array、sting、int等)
<?php
$sting = 'aa';
echo $sting; //aa
echo "aa"; //aa
print $sting; //aa
print "aa"; //aa $age = array(, , );
print_r($age); //Array ( [0] => 18 [1] => 20 [2] => 24 )
var_dump($age); //array(3) { [0]=> int(18) [1]=> int(20) [2]=> int(24) }
索引数组:key (整数,从0开始,步长1递增(0,1,2),自动生成)
关联数组: key (字符串(‘apple’,‘banana’)
遍历关联数组
<?php
$num = array("1" => "A", "2" => "B", "3" => "C"); foreach ($num as $key => $val) {
echo $key . ":" . $val;
echo "<br/>";
} // 1:A
// 2:B
// 3:C
遍历索引数组()
<?php
$num = array("A","B","C"); //定义索引数组(自动生成key,key为整数,从0开始,以步长为1递增)
$arrLength = count($num);
for ($x=; $x<$arrLength; $x++){
echo $num[$x];
echo "<br/>";
}
// A
// B
// C
<?php
$num = array("A", "B", "C");
foreach ($num as $key => $val) {
echo $key . ":" . $val . "<br/>";
} //0:A
//1:B
//2:C
遍历多维数组(关联数组、索引数组)
<?php
$num = array(
"" => array("a", "AA"),
"" => array("b", "BB"),
"" => array("c", "CC")
); foreach ($num as $key => $val) {
echo $key;
echo ":";
foreach ($val as $v){
echo $v;
}
echo "<br/>";
} // 1:aAA
// 2:bBB
// 3:cCC
遍历二维数组(索引数组)
<?php
$num = array(
array("a", "AA"),
array("b", "BB"),
array("c", "CC"),
);
$numLength = count($num);
for ($i = ; $i < $numLength; $i++) {
for ($j = ; $j < ; $j++) {
echo $num[$i][$j];
}
echo "<br/>";
} // aAA
// bBB
// cCC
foreach 遍历数组
$students = array(
'' => 'A',
'' => 'B',
'' => 'C',
); foreach ($students as $v){ //foreach只取值,不取下标
echo $v;
echo "<br/>";
} // A
// B
// C
<?php
$students = array(
'' => 'A',
'' => 'B',
'' => 'C',
); foreach ($students as $key => $v) { // foreach同时取下标和值
echo $key . ":" . $v;
echo "<br/>";
} // 1:A
// 2:B
// 3:C
constant
<?php
define("PI", 3.14);
$p = "PI";
echo $p . "<br/>"; //PI
echo constant($p); //3.14 constant里边为存储常量名的变量
php 系统常量
<?php
echo __FILE__; //index.php 文件名
echo "<br />";
echo __LINE__; //4 当前代码所在的行数
echo "<br />";
echo PHP_VERSION; //5.3.29 php的版本
echo "<br />";
echo PHP_OS; //Linux 操作系统名称
echo "<br />";
php NULL 类型
<?php
error_reporting(); //禁止显示PHP警告提示
$var;
var_dump($var); //NULL(空)
$var1 = null;
var_dump($var1); //NULL(小写)
$var2 = NULL;
var_dump( $var2); //NULL(大写)
$var3 = "节日快乐!";
unset($var3);
var_dump($var3); //NULL(unset)
php资源类型
<?php
$file_handle = fopen("./123.txt",'r'); if ($file_handle){
while (!feof($file_handle)){
$line = fgets($file_handle);
echo $line;
echo "<br />";
}
} fclose($file_handle);
$file=fopen("f.txt","r"); //打开文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
双引号中的变量:变量
单引号中的变量:字符串(做为字符串输出)
<?php
$love = "I love you!";
$string1 = "慕课网,$love";
$string2 = '慕课网,$love';
echo $string1; //慕课网,I love you!
echo "<br />";
echo $string2; //慕课网,$love
?>
php1的更多相关文章
- [PHP] PHP1 与 CGI
早期,一个web程序通过cgi方式提供数据处理,编写cgi程序可以用不同的语言. 这个过程是,我们生成一个服务端可执行程序,处理 web server 传过来的请求,(设置header头)然后返回数据 ...
- PHP1.0版本上传OSS报错,仿照2.0版本传入的居然是句柄
代码如下: $oss_sdk_service = new ALIOSS(); $oss_sdk_service->set_debug_mode(FAL ...
- PHP-1安装配置
php-fpm启动 /usr/local/php/sbin/php-fpm start
- PHP-1.数据库连接与登陆
<?php //数据库信息 $servername = "localhost"; $username = "root"; $password = &quo ...
- PHP1.9--数组
1.array_slice()函数作用是在数组中根据条件取出一段值并返回,如果数组有字符串键,所返回的数组将保留健名 array array_slice(array array ,int offset ...
- PHP1.6--数组
一.数组的键值操作函数 1.array_values() 函数作用是返回数组中所有元素的值,只有一个参数,规定传人给定数组,返回一个包含给定数组中所有值的数组,但不保留键名 被返回的数组将使用顺序的数 ...
- [极客大挑战 2019]PHP1
知识点:PHP序列化与反序列化,最下方有几个扩展可以看一下 他说备份了,就肯定扫目录,把源文件备份扫出来 dirsearch扫目录扫到www.zip压缩包
- Mac配置PHP
前言 在MacOS中已经内置了PHP和Apache,所以不需要再额外安装它们,只需要简单几步即可运行PHP. 配置Apache 查看Apache版本: $ sudo apachectl -v 终端关闭 ...
- PHP中多站点的设置
当初配置多站点的问题,整了几个小时没整好,第二天一看才发现是单词拼错了(无奈..),所以能复制的一定复制!!! 1,首先进行Apache的配置(先复制一份进行备份,以免丢失). 进入Apache文件下 ...
随机推荐
- docker 1 为什么要使用docker
一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.做为开发+运维之间的协作,我们需要关心很多东西,这也就是很多互联网公司都不得不面对的问题,特别是各种版本的迭代后,不同版本环境的兼容,对运维 ...
- Android APP性能测试笔记(二)
(5)FPS 每秒传输帧数(Frames Per Second),每秒钟帧数愈多,所显示的动作就会愈流畅,标准的fps是60 帧数就是在1秒钟时间里传输的图片的量,也可以理解为图形处理器每秒钟能够 ...
- day13----迭代器、生成器、枚举对象
一.迭代器: 定义: (从装有多个值的容器中一次取出一个值给外界) 器:迭代器是个容器,包含多个值 迭代:循环反馈,从容器中一次取出一个值 迭代器不同于索引取值,但是也可以从容器对象中从前往后逐个返回 ...
- 修复XSS跨站漏洞
XSS跨站漏洞最终形成的原因是对输入与输出没有严格过滤. 1.输入与输出 在HTML中,<,>,",',&都有比较特殊的意义.HTML标签,属性就是由这几个符合组成的.P ...
- 安装TensorFlow踩的坑
1.TensorFlow的版本要和对应的cuda,cudnn版本都对应上,装了cuda 9.0和cudnn 7.5,TensorFlow默认装了最新版1.13.1,一直出现 DLL error: 找不 ...
- span<T>之高性能字符串操作实测
.net中的字符串操作性能问题由来已久,幸运的是微软推出了span<T>高性能指针操作封装工具类.这个类到底有多高的性能呢?网上传言反正很高,但是实际上在网上很难找到合适的测试实例,这让本 ...
- Linux系统文件和目录管理
Linux系统文件和目录管理 相关命令的解析 1.pwd:显示用户当前的工作目录 2.ls: -a:显示所有文件,包括隐藏文件 -l:显示文件的详细信息 3.设备文件统一存放在/dev 设备文件 块设 ...
- mybatis源码-解析配置文件(四-1)之配置文件Mapper解析(cache)
目录 1. 简介 2. 解析 3 StrictMap 3.1 区别HashMap:键必须为String 3.2 区别HashMap:多了成员变量 name 3.3 区别HashMap:key 的处理多 ...
- Item 25: 对右值引用使用std::move,对universal引用则使用std::forward
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 右值引用只能绑定那些有资格被move的对象上去.如 ...
- c++入门之—运算符重载和友元函数
运算符重载的意义是:将常见的运算符重载出其他的含义:比如将*重载出指针的含义,将<<与cout联合使用重载出输出的含义,但需要认识到的问题是:运算符的重载:本质仍然是成员函数,即你可以认为 ...