【发布时间】:2013-12-26 16:32:17
【问题描述】:
我是 PHP 新手,我对它的“函数式编程”方面知之甚少。我正在使用一个似乎遵循“面向对象编程”风格的插件,并且希望访问一个变量以在我自己的函数中使用。我不知道该怎么做。
给你一个想法,插件中的类定义是这样的(有点):
<?php
class WPSEO_Frontend {
public function canonical() {
$canonical = get_page_link();
}
}
?>
插件中的另一个文件如何调用变量$canonical:
<?php
class WPSEO_Twitter extends WPSEO_Frontend {
public function twitter_url() {
echo '<meta name="twitter:url" content="' . esc_url( $this->canonical() ) . '"/>' . "\n";
}
}
?>
现在,我希望能够在我的函数中的不同文件中访问 $canonical 变量(以函数式编程风格)。例如,像这样:
<?php
function seo_meta_tags() {
echo '<meta property="og:url" content="' . $canonical . '">' . PHP_EOL;
}
?>
我该怎么做?有可能吗?
PS:据我所知,我不知道我是否遗漏了什么,所以请告诉我。
【问题讨论】:
-
也许可以试试
WPSEO_Frontend::canonical() -
@TheHumbleRat 我收到此错误:严格标准: 不应静态调用非静态方法 WPSEO_Frontend::canonical()
-
是的,它不是静态方法,或者在定义中会说静态。
-
您可以将
public function actionPurchaseOrderNumberS1($pp_purordnum)更改为此public static function actionPurchaseOrderNumberS1($pp_purordnum)。但是您可能对其他答案更好,我自己对此还是很陌生。 -
不,您不应该直接编辑插件的代码,特别是如果您不了解 OOP,而且我不知道 @TheHumbleRat 从哪里得到该函数名称...
标签: php wordpress scope procedural-programming