◆ fedora28 で php 7.2 を入れても json 関数が使えない
◆ 自分で php-json を dnf で入れると使えるようになる
◆ fedora27 の php 7.1 だと php パッケージの依存で入るので自分で入れる必要はなかった

PHP をインストールしてあるライブラリを動かして見たら何故かエラーになりました
インストール手順そのままやったはずなのに
エラーログを見ると

Call to undefined function json_encode()

とエラーがあって json_encode という関数がみつからないみたいです
あれ PHP ってデフォルトで JSON 関数使えるはずだよね?
ググっても出てくるのは昔の PHP で使える方法とかです

スペルミスもないですし json 機能がないみたいです
いつもどおり dnf で php を入れただけなので原因がわからないです
とりあえず php-json ってパッケージ入れて直ったりしないかな とパッケージを検索してみると
完全に一致するパッケージ名が存在しました

入れてみると普通に動くようになったのですが いつもはこんなパッケージを入れてないはずです
今回の環境は fedora 28 で php 7.2 です
fedora 27 で php 7.1 の環境があったのでそっちを確認したところ php-json パッケージは入っていました
入った原因を

dnf history php-json

で確認すると

dnf install php

のコマンドで入ったようです

dnf repoquery --requires php --tree

で依存関係を見てみます
4000 行ほどあったので php-json に関係する行のみ取り出すと

php-0:7.1.10-1.fc27.x86_64
\_ php-cli-0:7.1.10-1.fc27.x86_64 [37: rtld(GNU_HASH), libm.so.6()(64bit), /bin/sh, libpthread.so.0()(64bit), libstdc++.so.6()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libm.so.6(GLIBC_2.2.5)(64bit), libdl.so.2()(64bit), libz.so.1()(64bit), libc.so.6(GLIBC_2.15)(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), librt.so.1()(64bit), libxml2.so.2()(64bit), libcrypto.so.1.1()(64bit), libxml2.so.2(LIBXML2_2.4.30)(64bit), libtinfo.so.6()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), libcrypt.so.1()(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libxml2.so.2(LIBXML2_2.6.0)(64bit), libresolv.so.2()(64bit), libncurses.so.6()(64bit), liblzma.so.5()(64bit), libnsl.so.1()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), libpcre.so.1()(64bit), libcom_err.so.2()(64bit), libkrb5.so.3()(64bit), libk5crypto.so.3()(64bit), libgssapi_krb5.so.2()(64bit), libresolv.so.2(GLIBC_2.2.5)(64bit), libxml2.so.2(LIBXML2_2.5.2)(64bit), libedit.so.0()(64bit), libxml2.so.2(LIBXML2_2.6.11)(64bit), php-common(x86-64) = 7.1.10-1.fc27]
| \_ php-common-0:7.1.10-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libbz2.so.1()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), php-json(x86-64) = 7.1.10-1.fc27]
| | \_ php-json-0:7.1.10-1.fc27.x86_64 [6: rtld(GNU_HASH), libc.so.6(GLIBC_2.14)(64bit), libpthread.so.0()(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), php-common(x86-64) = 7.1.10-1.fc27]
| | | \_ php-common-0:7.1.10-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libbz2.so.1()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), php-json(x86-64) = 7.1.10-1.fc27]
\_ php-common-0:7.1.10-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libbz2.so.1()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), php-json(x86-64) = 7.1.10-1.fc27]
\_ php-fpm-0:7.1.10-1.fc27.x86_64 [39: rtld(GNU_HASH), libm.so.6()(64bit), libm.so.6(GLIBC_2.2.5)(64bit), libdl.so.2()(64bit), libz.so.1()(64bit), libc.so.6(GLIBC_2.15)(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), librt.so.1()(64bit), libxml2.so.2()(64bit), libcrypto.so.1.1()(64bit), libxml2.so.2(LIBXML2_2.4.30)(64bit), librt.so.1(GLIBC_2.2.5)(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), libcrypt.so.1()(64bit), libxml2.so.2(LIBXML2_2.6.0)(64bit), libresolv.so.2()(64bit), liblzma.so.5()(64bit), libnsl.so.1()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), libpcre.so.1()(64bit), libsystemd.so.0()(64bit), libcom_err.so.2()(64bit), libkrb5.so.3()(64bit), libk5crypto.so.3()(64bit), libgssapi_krb5.so.2()(64bit), libsystemd.so.0(LIBSYSTEMD_209)(64bit), libresolv.so.2(GLIBC_2.2.5)(64bit), libacl.so.1()(64bit), libacl.so.1(ACL_1.0)(64bit), libxml2.so.2(LIBXML2_2.5.2)(64bit), libxml2.so.2(LIBXML2_2.6.11)(64bit), nginx-filesystem, php-common(x86-64) = 7.1.10-1.fc27, httpd-filesystem >= 2.4.10, /bin/sh, systemd-units, /usr/sbin/useradd, httpd-filesystem]
| \_ php-common-0:7.1.10-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libbz2.so.1()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), php-json(x86-64) = 7.1.10-1.fc27]
php-0:7.1.21-1.fc27.x86_64
\_ php-cli-0:7.1.21-1.fc27.x86_64 [37: rtld(GNU_HASH), libm.so.6()(64bit), libpthread.so.0()(64bit), /bin/sh, libstdc++.so.6()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libdl.so.2()(64bit), libm.so.6(GLIBC_2.2.5)(64bit), libz.so.1()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), librt.so.1()(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libxml2.so.2()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), libxml2.so.2(LIBXML2_2.4.30)(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libtinfo.so.6()(64bit), libresolv.so.2()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), libcrypt.so.1()(64bit), libxml2.so.2(LIBXML2_2.6.0)(64bit), liblzma.so.5()(64bit), libnsl.so.1()(64bit), libkrb5.so.3()(64bit), libcom_err.so.2()(64bit), libpcre.so.1()(64bit), libk5crypto.so.3()(64bit), libgssapi_krb5.so.2()(64bit), libncurses.so.6()(64bit), libresolv.so.2(GLIBC_2.2.5)(64bit), libxml2.so.2(LIBXML2_2.5.2)(64bit), libedit.so.0()(64bit), libxml2.so.2(LIBXML2_2.6.11)(64bit), php-common(x86-64) = 7.1.21-1.fc27]
| \_ php-common-0:7.1.21-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), libbz2.so.1()(64bit), php-json(x86-64) = 7.1.21-1.fc27]
| | \_ php-json-0:7.1.21-1.fc27.x86_64 [6: rtld(GNU_HASH), libpthread.so.0()(64bit), libc.so.6(GLIBC_2.14)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), php-common(x86-64) = 7.1.21-1.fc27]
| | | \_ php-common-0:7.1.21-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), libbz2.so.1()(64bit), php-json(x86-64) = 7.1.21-1.fc27]
\_ php-common-0:7.1.21-1.fc27.x86_64 [13: rtld(GNU_HASH), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.15)(64bit), libcrypto.so.1.1()(64bit), libssl.so.1.1()(64bit), libcrypto.so.1.1(OPENSSL_1_1_0)(64bit), ld-linux-x86-64.so.2()(64bit), ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libcurl.so.4()(64bit), libssl.so.1.1(OPENSSL_1_1_0)(64bit), libbz2.so.1()(64bit), php-json(x86-64) = 7.1.21-1.fc27]

php → php-cli → php-common → php-json
php → php-common → php-json

の 2 種類のルートがあるようですが php-common が必要としてるから入ってたようです

7.2 では依存関係が変わって php-json 入らなくなったみたいですね