⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 object.php

📁 Joomla15 - 最新开源CMS
💻 PHP
字号:
<?php
/**
 * @version		$Id: object.php 7402 2007-05-14 04:18:28Z eddieajau $
 * @package		Joomla.Framework
 * @subpackage	Base
 * @copyright	Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
 * @license		GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

/**
 * Object class, allowing __construct in PHP4.
 *
 * @author		Johan Janssens <johan.janssens@joomla.org>
 * @package		Joomla.Framework
 * @subpackage	Base
 * @since		1.5
 */
class JObject
{	/**	 * An array of errors	 *	 * @var		array of error messages or JExceptions objects	 * @access	protected	 * @since	1.0	 */	var		$_errors		= array();
	/**
	 * A hack to support __construct() on PHP 4
	 *
	 * Hint: descendant classes have no PHP4 class_name() constructors,
	 * so this constructor gets called first and calls the top-layer __construct()
	 * which (if present) should call parent::__construct()
	 *	 * @access	public
	 * @return	Object	 * @since	1.5
	 */
	function JObject()
	{
		$args = func_get_args();
		call_user_func_array(array(&$this, '__construct'), $args);
	}

	/**
	 * Class constructor, overridden in descendant classes.
	 *
	 * @access	protected	 * @since	1.5
	 */
	function __construct() {}

	/**
	 * Returns a property of the object or the default value if the property is not set.
	 *	 * @access	public
	 * @param	string $property The name of the property
	 * @param	mixed  $default The default value
	 * @return	mixed The value of the property
	 * @see		get(), getPublicProperties()	 * @since	1.5
 	 */
	function get($property, $default=null)
	{
		if(isset($this->$property)) {
			return $this->$property;
		}
		return $default;
	}
	/**	 * Get the most recent error message	 *	 * @param	int		$i Option error index	 * @param	boolean	$toString Indicates if JError objects should return their error message	 * @return	string	Error message	 * @access	public	 * @since	1.5	 */	function getError($i = null, $toString = true )	{		// Find the error		if ( $i === null) {			// Default, return the last message			$error = end($this->_errors);		}		else		if ( ! array_key_exists($i, $this->_errors) ) {			// If $i has been specified but does not exist, return false			return false;		}		else {			$error	= $this->_errors[$i];		}		// Check if only the string is requested		if ( JError::isError($error) && $toString ) {			return $error->toString();		}		return $error;	}	/**	 * Return all errors, if any	 *	 * @access	public	 * @return	array	Array of error messages or JErrors	 * @since	1.5	 */	function getErrors()	{		return $this->_errors;	}
	/**
	 * Returns an array of public properties
	 *	 * @access	public
	 * @param	boolean $assoc If true, returns an associative key=>value array
	 * @return	array
	 * @see		get(), toString()	 * @since	1.5
 	 */
	function getPublicProperties( $assoc = false )
	{
		$vars = array(array(),array());
		foreach (get_object_vars( $this ) as $key => $val)
		{
			if (substr( $key, 0, 1 ) != '_')
			{
				$vars[0][] = $key;
				$vars[1][$key] = $val;
			}
		}
		return $vars[$assoc ? 1 : 0];
	}
	/**	 * Modifies a property of the object, creating it if it does not already exist.	 *	 * @access	public	 * @param	string $property The name of the property	 * @param	mixed  $value The value of the property to set	 * @return	mixed Previous value of the property	 * @since	1.5	 */	function set( $property, $value = null )
	{		$previous = isset($this->$property) ? $this->$property : null;		$this->$property = $value;		return $previous;	}	/**	 * Add an error message	 *	 * @param	string $error Error message	 * @access	public	 * @since	1.0	 */	function setError($error)	{		array_push($this->_errors, $error);	}
	/**
	 * Object-to-string conversion.
	 * Each class can override it as necessary.
	 *	 * @access	public
	 * @return	string This name of this class	 * @since	1.5
 	 */
	function toString()
	{
		return get_class($this);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -