سؤال

وأواجه مشكلة في استخدام حجة من صفي في واحدة من وظائف هذه الفئة ل.

ولدي فئة تسمى شركة:

class company {

   var $name;

   function __construct($name) {
      echo $name;
   }

   function name() {
      echo $name;
   }
}

$comp = new company('TheNameOfSomething');
$comp->name();

عند I مثيل لها (الثاني إلى السطر الأخير)، وطريقة سحرية بناء يعمل بشكل جيد، وصدى من "TheNameOfSomething". ومع ذلك، عندما استدعاء الدالة اسم ()، وأحصل على أي شيء.

وماذا أفعل الخطأ؟ أي مساعدة يحظى بتقدير كبير. إذا كنت بحاجة إلى أي معلومات أخرى، ونطلب فقط!

وبفضل
-Giles
http://gilesvangruisen.com/

هل كانت مفيدة؟

المحلول

وتحتاج إلى تعيين الخاصية الطبقة باستخدام $ هذه الكلمة الرئيسية.

class company {

   var $name;

   function __construct($name) {
      echo $name;
      $this->name = $name;
   }

   function name() {
      echo $this->name;
   }
}

$comp = new company('TheNameOfSomething');
$comp->name();

نصائح أخرى

عند استخدام اسم $ في كلا الأسلوبين نطاق متغير اسم $ يقتصر على وظيفة التي تم إنشاؤها في. طرق أخرى أو الطبقة التي تحتوي على ليست قادرة على قراءة المتغير أو حتى أعلم أنه موجود، لذلك كنت لديك لتعيين متغير فئة باستخدام البادئة $this->.

$this->name = $name;

وهذا يسمح للقيمة أن تكون مستمرة، ومتاحة للجميع وظائف الطبقة. وعلاوة على ذلك، المتغير هو الجمهور، لذلك أي برنامج نصي أو فئة قد قراءة وتعديل قيمة المتغير.

$comp = new company();

$comp->name = 'Something';

$comp->name(); //echos 'Something'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top