gpt4 book ai didi

php - 在php中使用父类或命名空间访问继承的类

转载 作者:行者123 更新时间:2023-12-04 16:55:45 24 4
gpt4 key购买 nike

我正在学习 php 中的命名空间。

我在 vendor/anuj-tbe/social-upload 中创建了 3 个文件目录和树状 View 就像

social-upload
|- SocialUpload.php
|- Facebook
|- FacebookUpload.php
|- Youtube
|- YoutubeUpload.php

它们的内容是:

SocialUpload.php
<?php
namespace SocialUpload;

class SocialUpload {

}

Facebook/FacebookUpload.php
<?php
namespace SocialUpload\FacebookUpload;

use SocialUpload\SocialUpload;

class FacebookUpload extends SocialUpload {
private $access_token = '';

function __construct($access_token)
{
$this->access_token = $access_token;
}

public function upload($video_file, $file_path)
{
return true;
}
}

Youtube/YoutubeUpload.php
<?php
namespace SocialUpload\YoutubeUpload;

use \SocialUpload\SocialUpload;

class YoutubeUpload extends SocialUpload {
private $access_token;

function __construct($access_token)
{
$this->access_token = $access_token;
}

public function upload($video_file, $file_path)
{
return true;
}
}

现在,我想在我的应用程序中需要的地方使用它。

我可以访问upload()FacebookUploadYoutubeUpload类使用 SocialUpload 的对象类(class)?

另外,如何将它添加到 composer autoload 以使用命名空间从任何地方访问这些类?

最佳答案

Can I access upload() of FacebookUpload or YoutubeUpload class using object of SocialUpload class?



不。简单地说,一个 SocialUpload不是 FacebookUploadYoutubeUpload .如果您有 SocialUpload一方面是对象(并且您知道它属于 youtube/facebook 类型,您可以将对象强制转换并转换回其原始类型。)否则,您必须创建一个新对象,其中包含要创建的原始对象的信息 FacebookUploadYoutubeUpload . A FacebookUpload另一方面,是 SocialUpload 的类型.您可以从一个转换到另一个,并访问两个类的公共(public)方法。

关于php - 在php中使用父类或命名空间访问继承的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44779283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com