我的代码就像

$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/

10-10 12:40