PHP tự w3schools

big thanx 2 Mardy dot Hutchinson at gmail dot com
very good!

some fixes to correct result displaying:
1. we need to trim $matches [1], 'cause there can be empty lines;
2. not bad to remove tag 'cause styles for it not apply correctly...
3. ...and change styles a little [remove "body" selector]

we need to change two lines:

preg_match ['%.*?[.*]%s', ob_get_clean[], $matches];
?>
to
preg_match ['%.*?[.*?]%s', ob_get_clean[], $matches];
?>

and

preg_split[ '/\n/', $matches[1] ]
?>
to
preg_split[ '/\n/', trim[preg_replace[ "/\nbody/", "\n", $matches[1]]] ]
?>

That's all! Now we have a really flexible addition to phpinfo[];

A lot of people in other comments wanting to get the classname without the namespace. Some weird suggestions of code to do that - not what I would've written! So wanted to add my own way.

function get_class_name[$classname]
{
    if [$pos = strrpos[$classname, '\\']] return substr[$classname, $pos + 1];
    return $pos;
}
?>

Also did some quick benchmarking, and strrpos[] was the fastest too. Micro-optimisations = macro optimisations!

39.0954 ms - preg_match[]
28.6305 ms - explode[] + end[]
20.3314 ms - strrpos[]

[For reference, here's the debug code used. c[] is a benchmarking function that runs each closure run 10,000 times.]

c[
    function[$class = 'a\b\C'] {
        if [preg_match['/\\\\[[\w]+]$/', $class, $matches]] return $matches[1];
        return $class;
    },
    function[$class = 'a\b\C'] {
        $bits = explode['\\', $class];
        return end[$bits];
    },
    function[$class = 'a\b\C'] {
        if [$pos = strrpos[$class, '\\']] return substr[$class, $pos + 1];
        return $pos;
    }
];
?>

Các trường hợp If-else và Switch được sử dụng để đánh giá các điều kiện và quyết định luồng chương trình. Toán tử bậc ba là toán tử tắt dùng để rút gọn câu lệnh điều kiện

toán tử bậc ba. Toán tử bậc ba [?. ] là toán tử điều kiện được sử dụng để thực hiện so sánh đơn giản hoặc kiểm tra một điều kiện có câu lệnh đơn giản. Nó làm giảm độ dài của mã thực hiện các hoạt động có điều kiện. Thứ tự thao tác của toán tử này là từ trái sang phải. Nó được gọi là toán tử bậc ba vì nó có ba toán hạng - một điều kiện, một câu lệnh kết quả cho giá trị đúng và một câu lệnh kết quả cho giá trị sai. Cú pháp của toán tử bậc ba như sau.  

cú pháp

[Condition] ? [Statement1] : [Statement2];
  • Tình trạng. Đó là biểu thức được đánh giá và trả về giá trị boolean
  • Tuyên bố 1. Đó là câu lệnh sẽ được thực hiện nếu điều kiện dẫn đến trạng thái đúng
  • Tuyên bố 2. Đó là câu lệnh sẽ được thực hiện nếu điều kiện dẫn đến trạng thái sai

Kết quả của phép so sánh này cũng có thể được gán cho một biến bằng cách sử dụng toán tử gán. Cú pháp như sau.   

Variable = [Condition] ? [Statement1] : [Statement2];

Nếu câu lệnh được thực thi tùy thuộc vào điều kiện trả về giá trị nào thì nó sẽ được gán cho biến

Ưu điểm của toán tử ternary. Sau đây là một số ưu điểm của toán tử bậc ba

  • Việc sử dụng toán tử bậc ba sẽ làm cho mã ngắn hơn so với câu lệnh IF ELSE
  • Đoạn mã có thể dài hơn so với câu lệnh IF ELSE
  • Khả năng đọc mã sẽ tăng lên khi sử dụng các câu điều kiện
  • Việc sử dụng toán tử bậc ba làm cho mã đơn giản hơn

ví dụ 1. Trong ví dụ này, nếu giá trị của $a lớn hơn 15, thì 20 sẽ được trả lại và sẽ được gán cho $b, ngược lại 5 sẽ được trả lại và được gán cho $b

php




Chủ Đề