PHP之特性

在你有别的编程语言的基础下,你想学习PHP,可能要了解的PHP特有的东西。

定界符

使用<<<TT(可以是任意字符,但是不可以在别的地方使用过)和TT,会解析html格式和变量,如果在<<<后面加上单引号就会不解析

php 复制代码
$x=123
echo <<<TT
123123$x 123
TT;

对象

只有public,protected,private权限控制

类中的parent类似Java的super

php 复制代码
lass AA
{
    public $name;
    private $age;
    public static $sex = "woman";//静态属性 需要类名调用
    const tall = "170cm";//常量 不允许修改

    /**
     * @param $name
     */
    public function __construct($name)
    {
        $this->name = $name;
        $this->age = self::$sex;//静态属性不能用$this调用 需要用self::
        echo "创建对象" . PHP_EOL;
    }

    static function tt()
    {
        echo "静态方法" . PHP_EOL;
        //在静态方法中调用非静态的方法
        echo (new self)->name;
    }

    public function __destruct()
    {
        // TODO: Implement __destruct() method.
        echo "销毁对象" . PHP_EOL;
    }

}

$AA = new AA("zhangsan");
$AA->name = "lisi";
AA::$sex = "man";//静态属性用类名调用
AA::tt();
echo $AA->name . AA::$sex . PHP_EOL;
延迟绑定 static

用static进行延迟绑定可以调用的对象决定到底使用哪个值

php 复制代码
class A
{
    protected static $name = "123";

    public function eat()
    {
        echo self::$name . PHP_EOL;//指定为当前类中的属性
        echo static::$name . PHP_EOL;//根据调用的对象来决定调用哪个类中的属性
    }
}

class B extends A
{
    protected static $name = "456";
}

//(new A())->eat();
(new B())->eat();

接口

接口里的权限只能是public

抽象类 abstract

抽象方法权限可以使用public,protected,可以包含非抽象方法的实现和抽象方法的声明,可以有构造方法

trait 代码复用

复制代码
解决单一继承,可以使用多个trait,用逗号隔开。里面不能有类常量,不能被实例化。
可以使用抽象方法
可以使用静态属性和静态方法
可以使用parent和其他trait
多个trait使用不可以有相同的key不同value
php 复制代码
trait A
{
    public function T()
    {
        echo "A" . PHP_EOL;
    }
}

trait B
{
    public function T()
    {
        echo "B" . PHP_EOL;
    }
}

class C
{
    use A, B {
        A::T insteadof B;//使用A中的T方法替换B中的T方法
        B::T as T1;//使用B中的T方法并起别名T1
        B::T as private T2;//as改别名时也可以改权限
    }

    public function d()
    {
        echo $this->T2();
    }
}

$c = new C();
$c->T();
$c->T1();
$c->d();

中断输出

中断进程,并输出当前要输出的值

php 复制代码
half(要输出的内容)
相关推荐
YA3339 小时前
java设计模式二、工厂
java·开发语言·设计模式
逐雨~9 小时前
9.8C++作业
开发语言·c++
我爱挣钱我也要早睡!10 小时前
Java 复习笔记
java·开发语言·笔记
Yang-Never11 小时前
Kotlin协程 -> Job.join() 完整流程图与核心源码分析
android·开发语言·kotlin·android studio
TomCode先生13 小时前
c#动态树形表达式详解
开发语言·c#
高-老师13 小时前
基于R语言的物种气候生态位动态量化与分布特征模拟
开发语言·r语言·物种气候
大翻哥哥14 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
weixin_4378309414 小时前
使用冰狐智能辅助实现图形列表自动点击:OCR与HID技术详解
开发语言·javascript·ocr
鹿鹿学长15 小时前
2025年全国大学生数学建模竞赛(C题) 建模解析|婴儿染色体数学建模|小鹿学长带队指引全代码文章与思路
c语言·开发语言·数学建模
zhousenshan15 小时前
Python爬虫常用框架
开发语言·爬虫·python