Support Joomla!

references:joomla.framework:base:jobject-setproperties

setProperties

API Package Subpackage Class Method Reference Last reviewed Doc status
API Home Package Joomla.Framework Subpackage Base Class JObject Method setProperties Reference setProperties() Never Work in Progress

This method allows bulk assignment of an object’s properties.

Syntax

bool setProperties ($properties)

$properties mixed Either an associative array or another object

$properties it always cast to an array. See Type casting in the PHP manual.

See also: * JObject::set * JObject::get * JObject::getProperties

Examples

Example 1

$person = new JObject();
// declare some values
$props  = array(
            'name'    =>'Anonymous', 
            '_secret' => '4711'
          );
// bulk assignment
$person->setProperties( $props );

echo 'Hello, ', $person->name;

will produce:

Result 1

Hello, Anonymous

Example 2

$details = new JObject();
// set some properties
$details->set( 'name', 'Jane Doe' ); 
$details->set( 'gender', 'f' ); 

// assign to $person object from Example 1
$person->setProperties( $details );

switch ($person->gender) {
case 'f':
    $greeting = 'Hello, Mrs.';
    break;
case 'm':
    $greeting = 'Hello, Mr.';
    break;
default:
    $greeting = 'Hello,';
    break;
}
echo $greeting, ' ',  $person->name;

will produce:

Result 2

echo Hello, Mrs. Jane Doe';

Caveats

You can’t use this method to unset() (remove) an existing property, but only assign it a ‘NULL’ value. If you want a property to cease from existence you must call unset($object->property), otherwise it will still be listed in JObject::getProperties or PHP‘s own get_object_vars().

Example 3

$override = array( 'gender' => null );
$person->setProperties( $override );

print_r( $person );
echo PHP_EOL, 'type: ', gettype( $person->gender );
echo PHP_EOL, 'gender: ', isset( $person->gender ) ? $person->gender : 'neuter';

unset( $person->gender );
unset( $person->_secret );
print_r( $person );

will produce:

Result 2

JObject Object
(
    [_errors] => Array
        (
        )
    [name] => Jane Doe
    [_secret] => 4711
    [gender] =>
)

type: NULL
gender: neuter

JObject Object
(
    [_errors] => Array
        (
        )

    [name] => Jane Doe
)

Caveats


Discussion

Full name:
E-Mail:
 
references/joomla.framework/base/jobject-setproperties.txt (415 views) · Last modified: 2007/09/22 02:51