PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > alt.comp.lang.php > is this possible in PHP
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
is this possible in PHP

Réponse
 
LinkBack Outils de la discussion
Vieux 29/07/2007, 17h53   #1
Jeff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut is this possible in PHP

PHP version 5.2.3
Below you see some .NET code. This is a class contain a private member
variable. For other classes to access this private variable they have to use
the public method. I'm wondering if something similar is possible with
object-oriented PHP (5.2.3) programming??

class Period
{
private double _second;
public double Seconds
{
get { return _second; }
set { _second = value; }
}
}


  Réponse avec citation
Vieux 29/07/2007, 18h08   #2
Rik
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: is this possible in PHP

On Sun, 29 Jul 2007 18:53:24 +0200, Jeff
<it_consultant1@hotmail.com.NOSPAM> wrote:

> PHP version 5.2.3
> Below you see some .NET code. This is a class contain a private member
> variable. For other classes to access this private variable they have to
> use
> the public method. I'm wondering if something similar is possible with
> object-oriented PHP (5.2.3) programming??
>
> class Period
> {
> private double _second;
> public double Seconds
> {
> get { return _second; }
> set { _second = value; }
> }
> }
>
>


An implementation of this could be:

<?php
class Period{
private $_second;

function __set($name,$value){
echo 'Setting '.$name;
$this->$name = $value;
}
function __get($name){
echo 'Getting '.$name;
if(isset($this->$name)) return $this->$name;
echo 'No such property: Period::'.$name;
}
}
$foo = new Period();
$foo->_second = 123;
echo $foo->_second ;
?>

Check the manual for the __get()/__set() functions. If you want to force
the variable to be a float (or whatever you want) you can enforce that in
the __set() method.

<http://nl3.php.net/manual/en/language.oop5.overloading.php>
--
Rik Wasmus
  Réponse avec citation
Vieux 01/08/2007, 17h36   #3
C.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: is this possible in PHP

On 29 Jul, 18:08, Rik <luiheidsgoe...@hotmail.com> wrote:
> On Sun, 29 Jul 2007 18:53:24 +0200, Jeff
>
>
>
> <it_consulta...@hotmail.com.NOSPAM> wrote:
> > I'm wondering if something similar is possible with
> > object-oriented PHP (5.2.3) programming??

>
>
>
> An implementation of this could be:
>
> <?php
> class Period{
> private $_second;
>
> function __set($name,$value){
> echo 'Setting '.$name;
> $this->$name = $value;
> }
> function __get($name){
> echo 'Getting '.$name;
> if(isset($this->$name)) return $this->$name;
> echo 'No such property: Period::'.$name;
> }}
>
> $foo = new Period();
> $foo->_second = 123;
> echo $foo->_second ;
> ?>


Which neatly demonstrates PHPs built in methods for objects - but is
probably overkill as a solution to the problem. I don't really
know .NET but I suspect this class stores a value and when a new value
is set it returns the previous value. In which case:

class Period
{
private $_second;
function Seconds($value)
{
$prev=$this->_second;
$this->_second=(double)$value;
return($prev);
}
}

C.

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 10h00.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,10254 seconds with 11 queries