• 2 رای - 4.5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تعریف اشاره گر(pointer)
#1
سلام بر استادان عزیز

ما در سایر زبان های برنامه نویسی مبحثی به نام اشاره گرها یا pointer ها داریم

ایا در پی اچ پی اینگونه تعریف می شود؟

کد پی‌اچ‌پی:
<?php $obj =& new Object(); ?>
اگر صحیح تشخیص دادم، راهنمایی بفرمائید
1- چه مقدار ما رو در کمتر مصرف کردن حافظه یاری میکنه
2- آیا عملکردش همانند زیبان های برنامه نویسی مثل سی یا دلفی هست؟
لطفا توضیحات لازم رو هم بیان کنید

یا اگر اشتباه تشخیص دادم فرق این دو خط در مثال زیر چیست؟

کد پی‌اچ‌پی:
<?php $obj = new Object(); ?>
و
<?php $obj =& new Object(); ?>
  پاسخ
تشکر شده توسط : Y.P.Y
#2
توی php که ما بهش می گیم references. منوال بهترین راهنمایی رو کرده
http://ir.php.net/manual/en/language.ref...whatdo.php
  پاسخ
تشکر شده توسط :
#3
مثل زبانهای برنامه نویسی دیگه هست. در واقع هر در یک reference هر دو متغیر به یک جا اشاره می کنند.
البته رفتارش در مورد یک object در خاطرم نیست توی منوال هم نمی تونم پیدا کنم
  پاسخ
تشکر شده توسط :
#4
برای از بین بردن یک آبجکت unset کفایت میکنه؟
  پاسخ
تشکر شده توسط :
#5
از بین میره اما رمش هنوز می مونه
  پاسخ
تشکر شده توسط :
#6
نظرت در این مورد چیه وحید جان

کد پی‌اچ‌پی:
class Node {
    public 
$parentNode;
    public 
$childNodes = array();
    function 
Node() {
        
$this->nodeValue str_repeat('0123456789'128);
    }
    function 
destroy()
    {
        
$this->parentNode null;
        
$this->childNodes = array();
    }
}
function 
createRelationship() {
    
$parent = new Node();
    
$child = new Node();
    
$parent->childNodes[] = $child;
    
$child->parentNode $parent;
    
$parent->destroy();

  پاسخ
تشکر شده توسط : admin
#7
(۱۳۸۷ اسفند ۱۰, ۰۲:۴۵ ق.ظ)zoghal نوشته: برای از بین بردن یک آبجکت unset کفایت میکنه؟

(۱۳۸۷ اسفند ۱۰, ۰۳:۱۵ ب.ظ)zoghal نوشته: نظرت در این مورد چیه وحید جان

کد پی‌اچ‌پی:
class Node {
    public 
$parentNode;
    public 
$childNodes = array();
    function 
Node() {
        
$this->nodeValue str_repeat('0123456789'128);
    }
    function 
destroy()
    {
        
$this->parentNode null;
        
$this->childNodes = array();
    }
}
function 
createRelationship() {
    
$parent = new Node();
    
$child = new Node();
    
$parent->childNodes[] = $child;
    
$child->parentNode $parent;
    
$parent->destroy();

عالیه
البته من بیشتر می خوام خود کلاس رو دستکاری نکنم مگر اینکه از حلقه استفاده کنم
  پاسخ
تشکر شده توسط :
#8
واقعا موندم چرا php تا الان برای این مورد فکری نکرده. در صورتی که یک اسکریپت ممکنه حیلی محدودیت های حافظه ای ایجاد کنه
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان