首页 > 解决方案 > 这段代码是什么意思 get_option( 'woocommerce_db_version', null )?

问题描述

if ( version_compare( get_option( 'woocommerce_db_version', null ), '3.6', '<' ) ) { return; }

我想知道 version_compare 、 get_option 、 'woocommerce_db_version'、 null 等的含义的详细描述。请描述它们。我想学习

标签: phpwordpress

解决方案


如果您想学习和使用 wordpress,只需转到所有开发人员文档所在的位置:https ://developer.wordpress.org/ 。在那里你可以找到所有功能的描述(https://developer.wordpress.org/reference/functions/),对我们来说有趣的是:https ://developer.wordpress.org/reference/functions/get_option/

get_option( string $option, mixed $default = false )

Retrieves an option value based on an option name.

还有描述和参数文档:

$option (string) (Required) Name of option to retrieve. Expected to not be SQL-escaped.
$default (mixed) (Optional) Default value to return if the option does not exist.
Default value: false

因此,如果先前未设置,则get_option通过名称 ( ) 从 db 中检索选项,woocommerce_db_version或者返回(第二个参数)。null

现在 version_compare - 这是 php 函数:https ://www.php.net/manual/en/function.version-compare.php

version_compare — Compares two "PHP-standardized" version number strings

这里使用了 3 个参数版本:

version_compare ( string $version1 , string $version2 , string $operator ) : bool

因此,在您提供的代码中,我们询问存储在选项中的版本woocommerce_db_version是否<低于3.6. 如果它是我们返回(什么也不做),但如果它没有降低我们执行下面的代码。

将 IDE 用于您的代码,通过将鼠标悬停在函数上或单击它们,所有这些文档都将触手可及。

使用 php -a 交互式 shell 来测试一些代码/功能,例如:

php > var_dump( version_compare(null, '3.8', '<'));
bool(true)
php > var_dump( version_compare('3.7', '3.8', '<'));
bool(true)
php > var_dump( version_compare('3.8', '3.8', '<'));
bool(false)
php > var_dump( version_compare('3.9', '3.8', '<'));
bool(false)

如果您想知道“woocommerce_db_version”选项到底是什么,请访问 woocommerce github 页面并搜索它https://github.com/woocommerce/woocommerce/search?q=%27woocommerce_db_version%27&unscoped_q=%27woocommerce_db_version%27作为所有这是开源代码。


推荐阅读