在PHP中将对象转换为字符串

时间:2017-09-28 15:44:08

标签: php

我在WordPress网站中创建了一个过滤器标签。

问题很简单:它是一个房地产主题网站。有一个属性列表(一些是出售,其他是出租)。

使用对象显示价格:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "NavWrapper">
	<button class = "Home">
		Home
	</button>
	<button class = "Channel">
		Channel
	</button>
	<div class = "Content-Wrapper">
	<button class = "Content-Button">
		Hello World!
	</button>
</div>
</div>

我希望能够检查是否有“每月”字样。在价格中能够知道哪些是在售,哪些是出租。

我可以使用PHP中的$my_property->price() 函数来做到这一点,但我无法在对象上使用它。

如何将strstr的输出转换为字符串以便能够操作它并在$my_property->price()语句中使用它?

注意:gettype($ my_property)是Object,gettype($ my_property-&gt; price())返回附加了NULL的价格。

示例:

//正常结果 $ my_property-&gt; price()将返回示例:$ 850,000,00

// Gettype结果 gettype($ my_property-&gt; price())将返回$ 850,000,00NULL

if的输出是该物业的价格。

$my_property->price()

如果该物业是出租物,则每月字将显示在价格旁边,因此使用此词我将能够区分出售的物业和出租物业。因此,我需要在价格中以每月的存在为中心制作一些条件陈述。 我不能做价格在 Object 类型下。无论如何,我可以将此对象的内容分配给一个新变量,以便我可以这样做吗?或者如果有人有其他想法来解决这个问题,那也很棒。

3 个答案:

答案 0 :(得分:0)

如果响应是字符串,那么您可以执行以下操作:

<?php
$extraClass = '';
$price = $my_property->price();
if (false !== strpos($price, 'Monthly)) {
    $extraClass = 'rental';
}
?>
<span class="price <?php $extraClass><"><?php $price ?></span>

或类似的东西,取决于你实际想要测试出租的原因。

答案 1 :(得分:0)

这是'<pre>', var_dump($my_property->price()), '</pre>';

的输出

https://i.stack.imgur.com/l5A6D.png

代码截图:

https://i.stack.imgur.com/QyOcA.png

答案 2 :(得分:0)

后端的代码与显示价格有关:

  /**
     * Display property price
     */
    public function price() {
        if ( ! $this->property_id ) {
            return false;
        }
        echo $this->get_price();
    }

    /**
     * Returns property price
     * @return string price
     */
    public function get_price() {
        if ( ! $this->property_id ) {
            return null;
        }
        $price_amount = doubleval( $this->get_property_meta( $this->meta_keys[ 'price' ] ) );
        $price_postfix = $this->get_property_meta( $this->meta_keys[ 'price_postfix' ] );
        return $this->format_price( $price_amount, $price_postfix );
    }

    /**
     * Provide formatted price
     *
     * @param int|double|float $price_amount    price amount
     * @param string $price_postfix    price post fix
     * @return null|string  formatted price
     */
    public static function format_price ( $price_amount, $price_postfix = '' ) {