Neden iki kez bu tefrika değer nesneleştirmek var?

1 Cevap php

Ben burada yanlış ne yapıyorum? Ben şimdiye kadar ... Tamam bunu almak, bir veritabanı (tablo bb_meta) saklayarak, bir değer seri hale ediyorum ... ama sonra ben iki kez nesneleştirmek var. Ben sadece bir kez nesneleştirmek mümkün olmamalı? Bu iş gibi görünüyor, ama ben burada kaçırıyorum serileştirme hakkında hangi noktada merak ediyorum.

//check database to see if user has ever visited before.
$querystring = $bbdb->prepare( "SELECT `meta_value` FROM `$bbdb->meta` WHERE `object_type` = %s AND `object_id` = %s AND `meta_key` = %s LIMIT 1", $bbtype, $bb_this_thread, $bbuser );
$bb_last_visits = $bbdb->get_row($querystring, OBJECT);
//if $bb_last_visits is empty, add time() as the metavalue using bb_update_meta
    if (empty($bb_last_visits)) {
        $first_visit = time();
        echo 'serialized first visit: ' . $bb_this_visit_time_serialized = serialize(array($bb_this_thread => $first_visit));
        bb_update_meta( $bb_this_thread, $bbuser, $bb_this_visit_time_serialized, $bbtype ); //add to database, bb_meta table
        echo '$bb_last_visits was empty. Setting first visit time as ' . $bb_this_visit_time_serialized . '<br>';
        } else {
            //else, test by unserializing the data for use.
            echo 'last visit time already set: '; echo $bb_last_visits->meta_value; echo '<br>';
            //fatal error - echo 'unserialized: ' . $bb_last_visits_unserialized = unserialize($bb_last_visits[0]->meta_value); echo '<br>';
            echo 'unserialize: ' . $unserialized_visits = unserialize($bb_last_visits->meta_value); echo '<br>';
            echo 'hmm, need to unserialize again??: '; echo $unserialized_unserialized_visits = unserialize($unserialized_visits); echo '<br>';
            echo 'hey look, it\'s an array value I can finally use now. phew: ' . $unserialized_unserialized_visits[$bb_this_thread];
            }

1 Cevap

bb_update_meta () maybe_serialize adında bir Wordpress function () görünüşe göre bu durumda şartlı bir dizi seri hale anlamına gelen "does the boring stuff for you" O çağıran bir bbPress fonksiyonudur.

Bir dizgilenmemiş dizi doğrudan bu fonksiyon geçirilebilir. Böyle yaparak, ben un-un-, tefrika ihtiyacını kaçınılmalıdır.

Emin değil tüm çaba performans kazancı değdi, ama en azından eğitici oldu.

Bu çözüldü kıvılcım kapalı ayarı için webbiedave @ teşekkürler!