我的代码就像
$perm = "0777"; //this is fetch from the database
chmod("myFolder/", $perm);
但是$ perm的值不是八进制,如何将变量的数据类型更改为八进制?即使是替代方法也可以
最佳答案
如前所述,没有八进制数类型。 chmod函数将第二个参数作为整数接收。 $perm
的隐式转换不假定数字为八进制。因此,您需要使用适当的函数将“八进制字符串”转换为整数。
只需使用octdec函数
$perm = "0777"; //this is fetch from the database
chmod("myFolder/", octdec($perm));
或intval
chmod("myFolder/", intval($perm, 8));
P.S.
var_dump('0644' == 0644); // bool(false)
var_dump(intval('0644') == 0644); // bool(false)
var_dump(decoct('0644') == 0644); // bool(false)
var_dump(octdec('0644') == 0644); // bool(true)
var_dump(intval('0644', 8) == 0644); // bool(true)
关于php - 将 '0777'字符串更改为0777八进制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28672096/