「Php/php8」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→php8だと警告が出る) |
(→php8だと警告が出る) |
||
| 行28: | 行28: | ||
</pre> | </pre> | ||
| − | == | + | ===smarty3について、php8だとエラーが出る=== |
| − | 2026/ | + | 2026/4時点の最新smarty3.1.48だと、エラーがでる。 |
| + | <pre> | ||
| + | Fatal error: Type of SmartyCompilerException::$line must be int (as in class Exception) in smarty-3.1.48/libs/sysplugins/smartycompilerexception.php on line 8 | ||
| + | </pre> | ||
| + | |||
| + | ===smarty3について、php8だと警告が出る=== | ||
| + | smarty3.1.39に落としても、別の箇所で、警告がでる。 | ||
<pre> | <pre> | ||
Warning: Undefined array key "start_time" in smarty-3.1.48/libs/sysplugins/smarty_internal_debug.php on line 146 | Warning: Undefined array key "start_time" in smarty-3.1.48/libs/sysplugins/smarty_internal_debug.php on line 146 | ||
2026年4月5日 (日) 01:00時点における版
目次
クラス名の関数をconstructとして完全に使えなくなった
php7までは非推奨で、php8からは、完全に使えない。 __construnct()にする。
smartyのテンプレの使ってない変数の警告対応
エラー詳細
Warning: Undefined array key "key"
修正前
{{if $request.key}}
修正後
{{if isset($request.key)}}
smartyのテンプレのincludeで使ってない変数の警告対応
エラー詳細
Warning: Undefined array key "wordlike"
修正前
{{include file="parts/box.tpl" request=$request wordlike=$wordlike|default:''}}
修正後
{{include file="parts/box.tpl" request=$request wordlike=$wordlike|default:''}}
smarty3について、php8だとエラーが出る
2026/4時点の最新smarty3.1.48だと、エラーがでる。
Fatal error: Type of SmartyCompilerException::$line must be int (as in class Exception) in smarty-3.1.48/libs/sysplugins/smartycompilerexception.php on line 8
smarty3について、php8だと警告が出る
smarty3.1.39に落としても、別の箇所で、警告がでる。
Warning: Undefined array key "start_time" in smarty-3.1.48/libs/sysplugins/smarty_internal_debug.php on line 146 Warning: Undefined array key "start_template_time" in smarty-3.1.48/libs/sysplugins/smarty_internal_debug.php on line 73
Staticがついてないエラー
Staticコールが、できなくなって強制的に、エラー画面がでる。
エラー詳細
Non-static method SessionModel::getInstance() cannot be called statically
対応前
public function getInstance()
対応後
public static function getInstance()
list取得が配列が存在しない警告になる場合
エラー詳細
Warning: Undefined array key 1
修正前
list($dummy, $dummy, $uri_domain) = explode("/", $target);
修正後
$parts = explode("/", $target, 3);
$uri_domain = $parts[2] ?? ;
