• About

Viet PHP

PHP = ['newbie' => 'cơ bản', 'coder' => 'nâng cao', 'professional'=>'chuyên sâu']

  • PHP
    • OOP
    • Basic
  • WordPress
  • Bài tập PHP
  • PHP 7

Bài tập PHP – Array (2)

Posted on April 10, 2018 Written by admin Leave a Comment

Array có lẽ là phần hấp dẫn nhất của PHP. Khả năng chuyển đổi linh hoạt từ string sang array và từ array sang string, sang object, khiến cho array trở thành trung tâm xử lý với rất nhiều hàm dựng sẵn xử lý nhanh chóng. Bài này tiếp tục với hai đoạn code thử thách sau:

Code 1:

$string = "14302"; //0-1-2-3-4

echo $string[2]; //mẹo, ra 3, vậy đổi ở string[3]

$string[$string[2]] = "4";
print $string; //14342

[Read more…]

Filed Under: Bài tập PHP

Bài tập PHP – Array (1)

Posted on April 10, 2018 Written by admin Leave a Comment

Hai bài tập sau nói về việc tự động tăng key nếu key là số (integer), việc key tự động chuyển từ số thực (float/double) sang số nguyên (integer) và việc key của array là string dạng số (ví dụ “1” sẽ tương đương với key là integer (1).

[Read more…]

Filed Under: Bài tập PHP

Bài tập minh họa về kế thừa class khi thuộc tính là hằng và biến tĩnh.

Posted on April 8, 2018 Written by admin 3 Comments

Bài tập sau minh họa việc kế thừa trong class khi có biến tĩnh và hằng.

Giả sử có code sau:

class XYZ{

static $mama = 1;
var $papa = 1;
}

class ABCD extends XYZ
{

const girl = 2;
static $boy = 3;
function xyz($a)
{
    $this->hello = self::girl + ABCD::girl + $a*2 + self::$boy + ABCD::$boy + parent::$mama;
   
    return $this->hello;
}


}


$me = new ABCD;
echo $me->xyz(1) + $me->papa;

quan sát kết quả https://3v4l.org/sOZau sẽ thấy ra 14.

Tường giải: Mình tạo class cha XYZ với hai thuộc tính mama và papa, trong đó thuộc tính papa tĩnh.

Class con ABCD kế thừa XYZ, ta dùng keyword là extends để mô tả việc kế thừa class.

Trong class con mình khai tiếp các thuộc tính girl, boy. Chú ý khi ghi const girl = 2; đây là một hằng, cũng có đặc điểm như một biến static là giá trị không thay đổi.

Trong class con ABCD mình có một hàm truyền vào tham số $a. Hàm này tính toán như sau:

$this->hello = self::girl + ABCD::girl + $a*2 + self::$boy + ABCD::$boy + parent::$mama;

Như vậy biến $this->hello sẽ có kết quả tính toán bằng $a X 2 trước vì đây là toán tử ưu tiên cộng với các giá trị tham chiếu từ class cha và cả class con như sau:

  • selft:: girl và ABCD::girl đều cho kết quả như nhau, đơn giản là tham chiếu tới tham số $girl mình đã khai là hằng, bằng 2 + 2.
  • self::$boy + ABCD::$boy đều cho kết quả như nhau, tham chiếu tới $boy, bằng 3 + 3
  • parent::$mama bằng 1 vì tham chiếu tới class cha.

Tiếp đến mình khởi tạo đối tượng $me, dùng từ khóa new ABCD;

Mình sẽ xuất ra kết quả gọi hàm xyz() và truyền vào 1, cộng với kết quả tham chiếu tới tham số $papa.

Tóm lại như sau:

1) $me->xyz(1) tương đương với:

$this->hello = self::girl + ABCD::girl + $a*2 + self::$boy + ABCD::$boy + parent::$mama;

nó lại tương đương với kết quả sau:

2 + 2 + 1*2 + 3+ 3 + 1 = 13

2) $me->papa; tương đương với 1.

Vậy tổng là 14.

Filed Under: Bài tập PHP

  • « Previous Page
  • 1
  • 2

Recent Posts

  • How to pass a variable to the callback function provided by Laravel Collection
  • Cài Sodium trên PHP 7.2 Centos
  • Dependency Injection và Container
  • Hàm array_map() và array_walk()
  • Dependency Injection

Recent Comments

  • admin on Dependency Injection
  • Vượng on Dependency Injection
  • vượng on Dependency Injection
  • vượng on Dependency Injection
  • vượng on Dependency Injection

Archives

  • July 2018
  • June 2018
  • May 2018
  • April 2018

Categories

  • Bài tập PHP
  • Basic
  • Laravel
  • OOP
  • OOP
  • PHP
  • String
  • Uncategorized
  • WordPress

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Copyright © 2021 · Focus Pro on Genesis Framework · WordPress · Log in