我有一个八进制,我用来设置目录的权限.
$permissions = 0777;
mkdir($directory, $permissions, true)
Run Code Online (Sandbox Code Playgroud)
我想将它与字符串进行比较
$expectedPermissions = '0777'; //must be a string
if ($expectedPermissions != $permissions) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
这种比较最好的方法是什么?
在您的情况下,为什么不比较两个数值?
像这样 :
if (0777 != $permissions) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
仍然,要将值转换为包含数字的八进制表示的字符串,您可以使用sprintf和o类型说明符.
例如,以下代码部分:
var_dump(sprintf("%04o", 0777));
Run Code Online (Sandbox Code Playgroud)
会得到你:
string(4) "0777"
Run Code Online (Sandbox Code Playgroud)
最好的办法是:
if (0777 != $permissions)
Run Code Online (Sandbox Code Playgroud)
PHP 识别八进制文字(如您的作业所示)。
也就是说,您还可以将字符串而不是整数与以下内容进行比较:
if ('0777' != "0" . sprintf("%o", $permissions))
Run Code Online (Sandbox Code Playgroud)