Maison développement back-end tutoriel php 新手请教下,类属性能初始化为一个其他类的实例对象吗

新手请教下,类属性能初始化为一个其他类的实例对象吗

Jun 13, 2016 pm 12:02 PM
function nbsp public test

新手请问下,类属性能初始化为一个其他类的实例对象吗
如果行的话,那语法是什么样的?

------解决方案--------------------

class A {}<br />class B {<br />  public $o;<br />  function __construct() {<br />    $this->o = new A;<br />  }<br />}<br />$p = new B;<br />print_r($p);
Copier après la connexion
B Object<br />(<br />    [o] => A Object<br />        (<br />        )<br /><br />)<br /><br />
Copier après la connexion

------解决方案--------------------
引用:
@xuzuning版主
<?php<br />	class test{<br />		private $parameter;<br />		public function __construct($parameter){<br />			$this->parameter=$parameter;<br />			echo "test类构造方法被调用<br/>";<br />		}<br />		public function getParameter(){<br />			echo $parameter;<br />		}<br />	}<br />	class test1{<br />		private static $test=null;<br />		public function __construct(){<br />			$test = new test("test");<br />			echo "test1类构造方法被调用<br/>";<br />		}<br />		public static function show(){<br />			echo "show()方法被调用";<br />			self::$test->getParameter();//<br />		}<br />	}<br />	$test1 = new test1();<br />	test1::show();<br />?>
Copier après la connexion

以上代码这句:self::$test->getParameter();会报Fatal error: Call to a member function getParameter() on a non-object,我把test1类的属性$test改为普通属性,show()方法改为普通方法,还是报同样的错误,为什么?


你的程序写错了。
1.第9行,你要显示$parameter属性,应是 echo $this->parameter; 而不是echo $parameter;
2.第15行 $test = new test("test"); 这个赋值并不会赋值到 private static $test,所以第20行的self::$test 是等于null
因此15行需要改为 self::$test = new test("test");

修改后的程序如下:
<br /><?php<br />    class test{<br />        private $parameter;<br />        public function __construct($parameter){<br />            $this->parameter=$parameter;<br />            echo "test类构造方法被调用<br/>";<br />        }<br />        public function getParameter(){<br />            echo $this->parameter; // 修改这里<br />        }<br />    }<br />    class test1{<br />        private static $test=null;<br />        public function __construct(){<br />            self::$test = new test("test");  // 修改这里<br />            echo "test1类构造方法被调用<br/>";<br />        }<br />        public static function show(){<br />            echo "show()方法被调用";<br />            self::$test->getParameter();//<br />        }<br />    }<br />    $test1 = new test1();<br />    test1::show();<br />?><br />
Copier après la connexion


test类构造方法被调用
test1类构造方法被调用
show()方法被调用test

最后不得不说,自己有问题应该开贴,不应该在别人贴里面问。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La montre intelligente Huawei Watch GT 5 reçoit une mise à jour avec de nouvelles fonctionnalités La montre intelligente Huawei Watch GT 5 reçoit une mise à jour avec de nouvelles fonctionnalités Oct 03, 2024 am 06:25 AM

Huawei déploie la version logicielle 5.0.0.100 (C00M01) pour les montres intelligentes Watch GT 5 et Watch GT 5 Pro dans le monde entier. Ces deux montres intelligentes ont récemment été lancées en Europe, le modèle standard étant le modèle le moins cher de l’entreprise. Cette harmonie

Le rêve du colonel Sanders de Tekken frit par KFC Le rêve du colonel Sanders de Tekken frit par KFC Oct 02, 2024 am 06:07 AM

Katsuhiro Harada, le réalisateur de la série Tekken, a un jour sérieusement tenté d'impliquer le colonel Sanders dans le jeu de combat emblématique. Dans une interview avec TheGamer, Harada a révélé qu'il avait présenté l'idée à KFC Japon, dans l'espoir d'ajouter la légende de la restauration rapide comme g

Premier aperçu : fuite de la vidéo de déballage du prochain chargeur mural Anker Zolo à 4 ports 140 W avec écran Premier aperçu : fuite de la vidéo de déballage du prochain chargeur mural Anker Zolo à 4 ports 140 W avec écran Oct 01, 2024 am 06:32 AM

Plus tôt en septembre 2024, le chargeur Zolo 140 W d'Anker a fait l'objet d'une fuite, et c'était un gros problème puisqu'il s'agissait du tout premier chargeur mural doté d'un écran de l'entreprise. Maintenant, une nouvelle vidéo de déballage de Xiao Li TV sur YouTube nous donne un aperçu direct du salut.

Les critiques de Cybertruck FSD font l'éloge du changement de voie rapide et des visualisations en plein écran Les critiques de Cybertruck FSD font l'éloge du changement de voie rapide et des visualisations en plein écran Oct 01, 2024 am 06:16 AM

Tesla déploie la dernière version 12.5.5 de conduite entièrement autonome (supervisée) et avec elle vient enfin l'option Cybertruck FSD promise, dix mois après la mise en vente du pick-up avec la fonctionnalité incluse dans le prix de finition de la série Foundation. F

Le nouveau chauffe-huile en graphène Xiaomi Mijia avec HyperOS arrive Le nouveau chauffe-huile en graphène Xiaomi Mijia avec HyperOS arrive Oct 02, 2024 pm 09:02 PM

Xiaomi lancera prochainement le chauffe-huile Mijia Graphene en Chine. La société a récemment mené avec succès une campagne de financement participatif pour le produit de maison intelligente, hébergé sur sa plateforme Youpin. Selon la page, l'appareil a déjà commencé à être expédié vers

Garmin publie des améliorations de l'activité Adventure Racing pour plusieurs montres intelligentes via une nouvelle mise à jour Garmin publie des améliorations de l'activité Adventure Racing pour plusieurs montres intelligentes via une nouvelle mise à jour Oct 01, 2024 am 06:40 AM

Garmin termine le mois avec une nouvelle série de mises à jour stables pour ses dernières montres intelligentes haut de gamme. Pour récapituler, la société a publié le logiciel système 11.64 pour lutter contre l'épuisement élevé de la batterie des Enduro 3, Fenix ​​E et Fenix ​​8 (prix actuel : 1 099,99 $ sur Amazon).

Le Samsung Galaxy Z Fold Special Edition a été révélé pour atterrir fin octobre alors que des noms contradictoires émergent Le Samsung Galaxy Z Fold Special Edition a été révélé pour atterrir fin octobre alors que des noms contradictoires émergent Oct 01, 2024 am 06:21 AM

Le lancement du très attendu pliable « Special Edition » de Samsung a pris une autre tournure. Ces dernières semaines, les rumeurs concernant le soi-disant Galaxy Z Fold Special Edition sont devenues plutôt silencieuses. Au lieu de cela, l’accent s’est déplacé vers la série Galaxy S25, y compris

Manjaro 24.1 \'Xahea\' est lancé avec KDE Plasma 6.1.5, VirtualBox 7.1 et plus Manjaro 24.1 \'Xahea\' est lancé avec KDE Plasma 6.1.5, VirtualBox 7.1 et plus Oct 02, 2024 am 06:06 AM

Avec une histoire de plus d'une décennie, Manjaro est considérée comme l'une des distributions Linux les plus conviviales, adaptée aussi bien aux débutants qu'aux utilisateurs expérimentés, étant facile à installer et à utiliser. Principalement développée en Autriche, en Allemagne et en France, cette distribution basée sur Arch

See all articles