PHP8 —— New String Helpers

新增了三个字符串函数,str_starts_with, str_ends_with, str_contains, PHP 的函数这么方便,很难想象竟然一直没有这几个。 str_starts_with 判断字符串是否以另一个字符串开头,在PHP7以及之前 $id = 'inv_abcdefgh'; $result = strpos($id, 'inv_') === 0; var_dump($result); // true PHP8 中可以直接这么写 $result = str_starts_with($id, 'inv_'); str_ends_with 判断字符串是否以另外一个字符串结尾,在 PHP7 及之前,比较麻烦,通常是这么写 $id = 'abcd_inv'; $result = strpos(strrev($id), strrev('_inv')) === 0; 或者 $result = substr($id, -1 * strlen('_inv')) === '_inv'; 或者上正则吧 $result = preg_match('/_inv$/', $id) === 1; 看起来都是比较麻烦的。PHP8 里面可以简化成下面这样了 $id = 'abcd_inv'; $result = str_ends_with($id, '_ind'); str_contains 字符串包含,PHP8 之前一般就是 strpos 来实现了 $url = 'https://example?for=bar'; $result = strpos($url, '?') !== FALSE; PHP8 就直接一点 $result = str_contains($url, '?');

D3js Data-binding basics

We can use d3.select() to select and change DOM elements, and we can create and remove elements based on data.
const books = [
  'Eloquent JavaScript',
  'JavaScript: The Good Parts',
  'JavaScript: The Definitive Guide',
  'You Don’t Know JS'
]

d3.select('body').selectAll('div.books')
  .data(books)
  .enter()
  .append('div')
  .attr('class', 'books')
  .html(function (d) {
    return d
  })
The result is:
enter image description here

d3.selectAll()

We start a selection using d3.selectAll() with a CSS identifier. Often there’s no elements match this identifier, and we then use .enter() function to create new elements.

.data()

We associate the data array with the elements which we selected using d3.selectAll(). For example we can access the first item of the array using code like this:
document.getElementsByClassName("books")[0].__data__
enter image description here

.enter() and .exit()

When we have more data items then DOM elements in the selection, .enter() function can be triggered to handle extra values; If we have less data values then DOM elements in the selection, .exit() is triggered. If data values and elements are equal, then neither function is triggered.

.append()

.append() function add more elements to the DOM according to the number of our data values. In the example above we add div elements.

.attr()

.attr() function set attributes to the element we just added.

.html

We use .html() to set content of the div. And we access data using inline function.

评论

此博客中的热门博文

JavaScript 数据类型

Vue3新特性(1) —— Vite