Hiển thị kết quả từ 1 đến 8 / 8
  1. #1
    Tham gia
    02-06-2007
    Bài viết
    981
    Like
    0
    Thanked 2 Times in 2 Posts

    Bạn nào giúp mình cái này với. (chẳng biết đặt tên nó là gì nữa)

    Mình đang học lập trình trên php. mình thắc mắc cái dấu & đứng trước các hàm các biến trong php có chức năng gì. Cái này mình còn lơ mơ quá lên mong các bạn giúp.
    Quote Quote

  2. #2
    Tham gia
    06-05-2008
    Location
    tân an
    Bài viết
    226
    Like
    0
    Thanked 23 Times in 12 Posts
    cái này là con trỏ bạn à

  3. #3
    Tham gia
    02-06-2007
    Bài viết
    981
    Like
    0
    Thanked 2 Times in 2 Posts
    Thêm thông tin đuoc hog bạn

  4. #4
    Tham gia
    11-03-2005
    Bài viết
    659
    Like
    0
    Thanked 7 Times in 1 Post
    Cái đó gọi là toán tử tham chiếu. Trong PHP ko có cái gì gọi là con trỏ (pointer) như trong C. Cũng giống như toán tử \$ của Perl, toán tử & làm nhiệm vụ tạo ra một tham chiếu đến 1 nội dung cho trước: nội dung mảng, nội dung của đối tượng ... thay vì tạo ra một bản sao nôi dung mới.

    http://www.php.net/manual/en/languag...ences.pass.php

  5. #5
    Tham gia
    03-02-2009
    Bài viết
    1,192
    Like
    0
    Thanked 1 Time in 1 Post
    Giả sử bạn có 1 hàm nhận vào 1 tham số. Nếu không dùng & thì tham số này chỉ được sử dụng giá trị của nó (sau khi ra khỏi hàm thì giá trị biến truyền vào không thay đổi), còn nếu dùng & phía trước thì biến truyền vào là một tham biến thực sự (giá trị biến sẽ thay đổi sau khi ra khỏi hàm (nếu có)).

    Lấy ví dụ bạn có 2 hàm:
    Code:
    //add_1 không có &
    function add_1($a){
       $a++;
    }
    // add_2 có &
    function add_2(&$a){
       $a++;
    }
    
    $b=4;
    
    add_1($b);
    echo $b; //kết quả =4 
    //bạn thấy sau khi gọi hàm add_1, biến b vẫn không thay đổi vì hàm add_1 chỉ lấy giá trị của b mà dùng thôi
    
    add_2($b);
    echo $b; //kết quả =5
    //sau khi gọi add_2, giá trị của b thay đổi (do trong hàm thay đổi, thực chất là thay đổi $a). Như vậy, khi dùng &, hàm sẽ tạo 1 bản sao của biến truyền vào và mọi thao tác liên quan đến tham biến này cũng sẽ ảnh hưởng đến biến truyền vào (nói đơn giản, $a là đại diện cho $b)
    Nó cũng tương tự như từ khóa byval trong VB.NET, nhưng ngược lại:
    VB.NET: có byval => dùng giá trị (tham trị); không byval => dùng biến (tham biến)
    PHP: có & => dùng tham biến; không & => tham trị

  6. #6
    Tham gia
    06-05-2008
    Location
    tân an
    Bài viết
    226
    Like
    0
    Thanked 23 Times in 12 Posts
    bổ sung nhé ^^

    đây gọi là truyền tham trị
    function add_1($a){
    }

    còn đây là truyền tham chiếu
    function add_2(&$a){
    }

  7. #7
    Tham gia
    02-06-2007
    Bài viết
    981
    Like
    0
    Thanked 2 Times in 2 Posts
    thank các bác giúp đỡ

  8. #8
    Tham gia
    10-04-2009
    Bài viết
    67
    Like
    1
    Thanked 1 Time in 1 Post
    Dấu & ở trước là con trỏ để lấy địa chỉ các ô nhớ
    vvThog - Wordpress Developer - today24h,com

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •