PHP---语法笔记

PHP语言特性详解

PHP是一种松散类型的语言

连接符 “.” 是一个点;其它语言为”+” ;

注释
PHP  //

HTML  <!-- -->

CSS  /* */

memory_get_usage 获取当前PHP消耗的内存

echo 输出boolean的时候,true输出1,false什么也不输出

八进制 前面是数字0;十六进制 前面是0x;

PHP字符串
字符串官方文档

字符串中包含引号的时候
1.单引号里面双引号
2.双引号里面单引号
3.使用转义字符 \


当引号里遇到$字符怎么办
1.双引号里,特殊字符的意义正常作用(有点像shell里面的定义),也可以理解字串变量仍可使用
2.单引号里,特殊符号失去意义


当字符串过长

Heredoc结构形式

<<<标识符
...
...
标识符;

特殊类型—资源

打开服务器文件,查看内容。fopen()函数

unset();复制变量清空

常量
define()函数

$p="myvalue";
define($p,1);
define("myvalue",1);
//常量如何取值

$result=myvalue*3*5;

$result=constant("myvalue")*3*5;
//判定常量是否被定义,返回boolean

defined($p);

defiend("myvalue");

系统常量

__FILE__: 获取文件的物理位置
__LINE__:  当前代码在第几行
PHP_VERSION  解析器的版本号
PHP_OS  当前PHP版本的操作系统名称

=== 全等 (数值相等,类型也相等)
<> 不等
!== 非全等,值不相同,或者类型不同,返回true
. 连接运算符
.= 连接赋值运算符,右边参数附加到左边参数后

错误控制运算符 @


date_default_timezone_set('asia/shanghai');
$week = date("w");//获取当天星期几

foreach (数组 as 值) 只取值,不取下标
foreach (数组 as 下标 => 值) 同时取下标和值

foreach ($arry_name as $v)
foreach($array_name $key => $v)

$arr = array();

PHP两种数组,索引数组,关联数组

索引数组赋值三种方式
$arr[0] = '苹果';
array('0'=>'苹果');
array('苹果');

访问索引数组内容
$arr['index'];
$arr[$index];//这尼玛就不用加''了

关联数组初始化
$arr=array(
'apple' => '苹果''banana' =>'香蕉',
...
);

赋值
$arr['apple'] = '苹果';

访问关联数组内容

$fruit0 = $fruit['banana'];
可变函数
function name() {
    echo 'jobs';
}
$func = 'name';
$func(); //调用可变函数

内置函数

str_replace(); 字符串替换
function_exists  判断函数是否存在
method_exists   判断类是否存在

静态属性与方法可以在不实例化类的情况下调用

class Car {
    private static $speed = 10;

    public static function getSpeed() {
        return self::$speed;
    }
}
echo Car::getSpeed();  //调用静态方法

动态调用

$func = 'getSpeed';
$className = 'Car';
echo $className::$func();  //动态调用静态方法

静态方法中,$this 不允许使用
可以使用self,parent,static内部调用
class Car {
    private function __construct() {
        echo 'object create';
    }

    private static $_object = null;
    public static function getInstance() {
        if (empty(self::$_object)) {
            self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象
        }
        return self::$_object;
    }
}
//$car = new Car(); //这里不允许直接实例化对象
$car = Car::getInstance(); //通过静态方法来获得一个实例

重载

class Car {
    private $ary = array();

    public function __set($key, $val) {
        $this->ary[$key] = $val;
    }

    public function __get($key) {
        if (isset($this->ary[$key])) {
            return $this->ary[$key];
        }
        return null;
    }

    public function __isset($key) {
        if (isset($this->ary[$key])) {
            return true;
        }
        return false;
    }

    public function __unset($key) {
        unset($this->ary[$key]);
    }
}
$car = new Car();
$car->name = '汽车';  //name属性动态创建并赋值
echo $car->name;
class Car {
    public $speed = 0;

    public function __call($name, $args) {
        if ($name == 'speedUp') {
            $this->speed += 10;
        }
    }
}
$car = new Car();
$car->speedUp(); //调用不存在的方法会使用重载
echo $car->speed;

去除字符串首尾空格
trim 两端 ,rtrim 右空格去除,ltrim 左空格去除

获取字符串的长度
strlen()
mb_strlen($str,”UTF-8”) 中文长度

字符串截取
substr(字符串变量,开始截取的位置,截取个数)
mb_substr() 中文截取,需要设置网页编码UTF-8在参数列表中

查找字符串
strpos();
strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])

替换字符串
str_replace(要查找的字符串, 要替换的字符串, 被搜索的字符串, 替换进行计数[可选])

格式化字符串
sprintf(格式,要转化的字符串);

%01.2f
% 格式开始
0 填空字元
1 占位数 (小数点也算一个占位)
.2 小数点占位数
f 转换字符结尾

字符串的合并与分割
implode() 合并函数
explode() 分割函数

字符串的转义 addslashes()
用于对特殊字符加上转义字符,返回一个字符串

OOP

调用 - >

构造函数

function __construct(){...}

析构函数

function __destruct(){...}

对象引用 &

继承 extends关键字,在PHP中只能单继承

访问控制(public,protected,private)

private---类的内部访问,这里各个语言,有一个有意思的方式,在类的内部定义了一个function get{ this->私有属性 }

protected --- 自身和子类内部可以访问

静态static --- 如果不使用该关键字,定义的属性和方法会随着不同对象的使用,譬如修改职位,造成不同对象的差异性;
访问方式 关键字 self | static
parent::静态变量  子类访问父类静态成员

final关键字(PHP 5) 不希望子类修改,final类不能被任何类继承
//接口

interface 

$obj instanceof 接口类  // 判断对象接口实现了没

可以用extends让接口继承接口,当类实现子接口时,父接口定义的方法,也需要类来实现

//多态

//抽象 abstract关键字

魔术方法

//当作字符串来用时,自动调用tostring
class MagicTest{
    public function __tostring(){
        return "对象转换成string的时候,自动调用"
    }

    public function __invoke(){
        return "把对象当作一个方法的时候,自动调用";
    }

    public function __call ($name,$argument){
        echo "Calling ".$name."with parameters: ".implode(",",$argument)."\n";
    }

    public static function __callStatic(){
        ...
    } 
}

$obj = new MagicTest();
echo $obj."\n";
$obj(5);

_get()
_set()
_isset()
_unset()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值