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
?>

 

posted @ 2018-02-11 17:23  254980080  阅读(164)  评论(0编辑  收藏  举报