PDA

View Full Version : سوال: چطور می تونم توی یه کلاس آرایه ای تعریف کنم که توی همه متدهای اون کلاس قابل دسترسی باشه؟



idocsidocs
شنبه 01 بهمن 1390, 15:57 عصر
چطور می تونم توی یه کلاس آرایه ای تعریف کنم که توی همه متدهای اون کلاس قابل دسترسی باشه؟

MMSHFE
شنبه 01 بهمن 1390, 16:07 عصر
class Test {
private $arr;

public function __construct() {
$arr = array();
}

public function AddToArray($value) {
$this->arr[] = $value;
}

public funcion Display() {
foreach($this->arr as $item) {
echo '<p>'.$item.'</p>'."\n";
}
}
}

موفق باشید.

idocsidocs
شنبه 01 بهمن 1390, 18:45 عصر
حتما باید توی سازنده آرایه رو تعریف کنم یا اعلان آرایه برای این کار کافی هست؟

در کل قرار موقع ایجاد یه آرایه از کد زیر باید استفاده بشه یا نه؟

$arr = array();

MMSHFE
شنبه 01 بهمن 1390, 19:10 عصر
فرقی نمیکنه ولی روش اصولی تر، مقداردهی در سازنده است. اصلاً کار سازنده همین مقداردهی اولیه به متغیرهای کلاسه.
موفق باشید.

idocsidocs
شنبه 01 بهمن 1390, 20:06 عصر
فرقی نمیکنه ولی روش اصولی تر، مقداردهی در سازنده است. اصلاً کار سازنده همین مقداردهی اولیه به متغیرهای کلاسه.
اگر توی یه متد، بدون اعلان قبلی، یه متغیر رو مقدار دهی کنم از نظر استاندارد کد نویسی و حوزه دسترسی مشکلی پیش نمی یاد؟


class Test {

public function AddToArray($value) { $this->myval = $value; } }

MMSHFE
یک شنبه 02 بهمن 1390, 11:02 صبح
بعید میدونم این روش اصولی باشه چون سطح دسترسی و... برای متغیر تعریف نشده. قاعدتاً باید با خطا مواجه بشین چون متغیری بنام myval$ توی کلاس تعریف نشده. هرچند خودم هنوز تست نکردم (الآن به سیستم دسترسی ندارم). در هر حال، بهتره اصول رو رعایت کنیم و متغیرها رو صراحتاً تعریف کنیم. حداقلش اینه که کد نمونه ای که گذاشتین، استاندارد نیست (این رو مطمئنم).
موفق باشید.

idocsidocs
یک شنبه 02 بهمن 1390, 12:44 عصر
بعید میدونم این روش اصولی باشه چون سطح دسترسی و... برای متغیر تعریف نشده. قاعدتاً باید با خطا مواجه بشین چون متغیری بنام myval$ توی کلاس تعریف نشده. هرچند خودم هنوز تست نکردم (الآن به سیستم دسترسی ندارم). در هر حال، بهتره اصول رو رعایت کنیم و متغیرها رو صراحتاً تعریف کنیم. حداقلش اینه که کد نمونه ای که گذاشتین، استاندارد نیست (این رو مطمئنم).من تست کردم و کدها بدون ارور اجرا شدن. ولی خودم هم مطمئن نیستم که روش روش درستی هست.

MMSHFE
یک شنبه 02 بهمن 1390, 12:58 عصر
کدها درست اجرا میشن چون PHP به تعریف اولیه متغیر حساس نیست ولی همونطور که گفتم، این روش اصولی نیست. بهتره صراحتاً متغیرهای کلاس رو تعریف کنید و سطح دسترسی مربوطه رو بهشون بدین. موفق باشید.