Hướng dẫn dùng sub class trong PHP

Hàm substr() giúp chúng ta cắt một phần của chuỗi ban đầu trong php.

Cú pháp

substr ( string $string , int $start [, int $length ] )

Input:

  • $string là chuỗi ban đầu
  • $start là vị trí cắt
  • $length là số ký tự cần cắt

Output: Một phần của chuỗi ban đầu được cắt, nếu thông số cắt không hợp lệ hàm trả về FALSE.

Chú ý:

  • Nếu $start có giá trị dương thì vị trí bắt đầu được đếm từ đầu đến cuối chuỗi và xuất phát từ 0. Ví dụ với chuỗi “abc” với vị trí 0 là bắt đầu ký tự “a”, vị trí 1 là “b”…
  • Nếu $start có giá trị âm thì đếm ngược từ cuối chuỗi và bắt đầu bằng giá trị 0. Vị trí ký tự cuối cùng của chuỗi là -1 ví thứ 2 từ sau đến là -2…
  • Nếu $length là số dương sẽ lấy tối đa các ký tự kể từ vị trí $start
  • Nếu $length là số âm sẽ loại bỏ $length ký tự từ cuối chuỗi.
  • Nếu $length bằng 0 hàm trả về False.

Ví dụ hàm substr()

Ví dụ 1: Tách chuỗi "Unitop" trong chuỗi "Unitop học web đi làm"

<?php
$str = "Unitop Hoc web di lam";
echo substr($str,0,6);
?>

Giải thích: Chuỗi "Unitop" vị trí đầu tiên nên $start = 0. Ngoài ra độ dài chuỗi này có 6 ký tự nên $length = 6.

Kết quả sau khi chạy chương trình

Unitop

Với lấy chuỗi này chúng ta có thể sử dụng những tham số sau vẫn có kết quả tương tự.

<?php
$str = "Unitop Hoc web di lam";
echo substr($str, 0, -15);

Giải thích: Lấy từ vị trí đầu tiên và loại bỏ 15 ký tự sau cùng của chuỗi.

Kết quả vẫn trả về chuỗi con

Unitop

Ví dụ 2: Tác thông tin của mã sinh viên.

Giả sử mã sinh viên được tạo ra bởi 2 phần.

  • Mã của lớp: ví dụ “TINK32”
  • Id của của sinh viên là chuỗi 7 ký tự cuối cùng

Nhiệm vụ cần xác định sinh viên thuộc lớp nào và id bao nhiêu.

<?php
$student = "TINK321061016";
$student_class = substr($student ,0,-7);
$student_id = substr($student ,-7);

echo "Class:{$student_class} <br> Id: {$student_id} ";

?>

Kết quả

Class:TINK32
Id: 1061016

Tổng kết

Qua 2 ví dụ trên bạn đã được hướng dẫn cách để sử dụng hàm substr() tách một phần của chuỗi trong php. Nội dung này cần tư duy khác nhiều nên bạn cần ghi chép và thực hành lại để nắm chắc bài học.

Hàm is_subclass_of() trong PHP có nhiệm vụ kiểm tra xem class hiện tại có class là class truyền vào hay không. Nói cách khác, hàm này để kiểm tra đối tượng truyền vào có phải sub class (class con) của 1 class cụ thể nào đó hay không?

  • Cú pháp
  • Tham số truyền vào 
  • Giá trị trả về
  • Ví dụ minh họa
  • Sử dụng với Interface
  • Ứng dụng
  • Các hàm liên quan

Cú pháp

Cú pháp hàm is_subclass_of() trong PHP như sau:

is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] ) : bool

Tham số truyền vào 

  • $object là đối tượng cần kiểm tra.
  • $class_name là class cha.

Giá trị trả về

Hàm này trả về TRUE nếu $object là con của $classnameFALSE nếu không phải là con của $classname.

Ví dụ minh họa

<?php
// Định nghĩa class cha
class WidgetFactory
{
  var $oink = 'moo';
}

// Định nghĩa class con
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// Khởi tạo 2 đối tượng
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "yes";
} else {
  echo "no";
}


if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "yes";
} else {
  echo "no";
}


// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "yes";
} else {
  echo "no";
}
?>

Bạn có thể thấy với ví dụ trên class WidgetFactory_Child là class kế thừa từ class WidgetFactory vì vậy kết quả sẽ là

yes
no
yes

Sử dụng với Interface

<?php
// Định nghĩa interface
interface MyInterface
{
  public function MyFunction();
}

// Định nghĩa class implements interface
class MyClass implements MyInterface
{
  public function MyFunction()
  {
    return "MyClass Implements MyInterface!";
  }
}

// Instantiate the object
$my_object = new MyClass;

// Hoạt động từ phiên bản PHP 5.3.7

if (is_subclass_of($my_object, 'MyInterface')) {
  echo "Yes";
} else {
  echo "No";
}

if (is_subclass_of('MyClass', 'MyInterface')) {
  echo "Yes";
} else {
  echo "No";
}
//Kết quả tương ứng
Yes
Yes
?>

Ứng dụng

Sử dụng is_subclass_of() để kiểm tra trong Class được kế thừa.

<?php
class {};
class extends {};
class extends {};

$foo=new C();
echo ((is_subclass_of($foo,'A')) ? 'true' 'false');
?>

true

Sử dụng một phương thức khác tương tự is_subclass_of() để kiểm tra interface

<?php

interface A_Interface {}
class A implements A_Interface {}

$reflectionA = new ReflectionClass('A');
var_dump(
    $reflectionA->implementsInterface('A_Interface')
);

bool(true)
?>

Các hàm liên quan

  • get_class() – Lấy tên của class hiện tại.
  • get_parent_class() – Lấy class cha của class hiện tại.
  • is_a() – Kiểm tra xem một Object có phải thể hiển của một Class hay không.
  • class_parents() – Lấy ra các lớp cha của các Class đã cho.

Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm is_subclass_of() trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé. Cảm ơn bạn đã ghé thăm codetutam.com