php1
正则表达式
$p = '/name:(\w+\s?\w+)/'; $str = "name:steven jobs"; preg_match($p, $str, $match); echo $match[1]; //结果为: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 = 0; public function speedUp(){ $this->speed += 10; return $this->speed; //如果没有,则结果为 50 } } class Truck extends Car { public function speedUpAdd() { $this->speed = parent::speedUp() + 50; } } $car = new Truck(); $car->speedUpAdd(); echo $car->speed; //60
<?php class Car //定义类 { private static $speed = 10; //私有 静态 属性 speed public static function getSpeed() //公有 静态 方法 getSpeed { return self::$speed; //静态方法中,$this不允许使用,可使用self,parent,static在内部通过 :: 调用静态属性和方法 } public static function speedUp() { return self::$speed += 10; //静态方法中,使用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 = 0; //公有属性 speed public function speedUp(){ //公有方法 speedUP return $this->speed += 10; } } $car = new Car(); //实例化Car对象(car) echo $car->speedUp(); //对象(car)调用方法 speedUP //10
<?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(18, 20, 24); 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=0; $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( "1" => array("a", "AA"), "2" => array("b", "BB"), "3" => 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 = 0; $i < $numLength; $i++) { for ($j = 0; $j < 2; $j++) { echo $num[$i][$j]; } echo "<br/>"; } // aAA // bBB // cCC
foreach 遍历数组
$students = array( '1' => 'A', '2' => 'B', '3' => 'C', ); foreach ($students as $v){ //foreach只取值,不取下标 echo $v; echo "<br/>"; } // A // B // C
<?php $students = array( '1' => 'A', '2' => 'B', '3' => '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(0); //禁止显示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 ?>