PHP 8.5.0 Alpha 2 available for testing

Ejemplos

En este ejemplo, se comienza por definir una clase base así como una extensión de esta clase. La clase base describe un vegetal, si puede ser consumido y cuál es su color. La subclase Spinach añade un método para cocinarlo, y otro para determinar si está cocido.

Ejemplo #1 Definiciones de las Clases

Vegetable

<?php
class Vegetable {
public
$edible;
public
$color;
public function
__construct($edible, $color = "green")
{
$this->edible = $edible;
$this->color = $color;
}
public function
isEdible()
{
return
$this->edible;
}
public function
getColor()
{
return
$this->color;
}
}
?>

Spinach

<?php
class Spinach extends Vegetable {
public
$cooked = false;
public function
__construct()
{
parent::__construct(true, "green");
}
public function
cook()
{
$this->cooked = true;
}
public function
isCooked()
{
return
$this->cooked;
}
}
?>

A continuación, se crean dos objetos a partir de estas clases y se muestran información sobre ellos, incluyendo su clase padre. Asimismo, se definen funciones utilitarias, principalmente para obtener una presentación más agradable de las variables.

Ejemplo #2 test_script.php

<?php
// register autoloader to load classes
spl_autoload_register();
function
printProperties($obj)
{
foreach (
get_object_vars($obj) as $prop => $val) {
echo
"\t$prop = $val\n";
}
}
function
printMethods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach (
$arr as $method) {
echo
"\tfunction $method()\n";
}
}
function
objectBelongsTo($obj, $class)
{
if (
is_subclass_of($obj, $class)) {
echo
"Object belongs to class " . get_class($obj);
echo
", a subclass of $class\n";
} else {
echo
"Object does not belong to a subclass of $class\n";
}
}
// instantiate 2 objects
$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();
// print out information about objects
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo
"leafy: CLASS " . get_class($leafy);
echo
", PARENT " . get_parent_class($leafy) . "\n";
// show veggie properties
echo "\nveggie: Properties\n";
printProperties($veggie);
// and leafy methods
echo "\nleafy: Methods\n";
printMethods($leafy);
echo
"\nParentage:\n";
objectBelongsTo($leafy, Spinach::class);
objectBelongsTo($leafy, Vegetable::class);
?>

Los ejemplos anteriores mostrarán :

veggie: CLASS Vegetable
leafy: CLASS Spinach, PARENT Vegetable
veggie: Properties
        edible = 1
        color = blue
leafy: Methods
        function __construct()
        function cook()
        function isCooked()
        function isEdible()
        function getColor()
Parentage:
Object does not belong to a subclass of Spinach
Object belongs to class Spinach, a subclass of Vegetable

Un aspecto importante a notar en el ejemplo anterior es que el objeto $leafy es una instancia de la clase Spinach que es una subclase de Vegetable.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top