内联If语句在PHP中

时间:2016-10-18 12:02:22

标签: php function if-statement

我正在尝试使用内联if语句,但是这里工作不正常是我的代码:

$subject_set = ($public) ? 'find_all_subjects()' : 'find_all_subjects(FALSE)';

请告诉我哪件事我做错了,这是我的正常陈述:

if($public){$subject_set = find_all_subjects();}else{$subject_set = find_all_subjects(FALSE);}

3 个答案:

答案 0 :(得分:3)

简单地说:'find_all_subjects()'是STRING,而find_all_subjects()是函数调用。

删除引号,它应该有用。

答案 1 :(得分:2)

从功能中删除引用

#include <iostream>
#include <vector>
#include <seccomp.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

using namespace std;

int main()
{
    cerr << "Starting..." << endl;

    scmp_filter_ctx ctx;
    ctx = seccomp_init(SCMP_ACT_KILL); // default action: kill

    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(rt_sigreturn), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(write), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(brk), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(mmap), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(munmap), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(mprotect), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(rt_sigprocmask), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(getpid), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(gettid), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(tgkill), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit_group), 0);

    // Don't want to give these 3 to child process but execvp requires them
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(open), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(execve), 0);
    seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(access), 0);

    seccomp_load(ctx);

    char * noargv[] = {NULL};

    execvp("./app", noargv);
}

答案 2 :(得分:0)

为什么使用''进行通话功能 ?

试试这个

$subject_set = ($public) ? find_all_subjects() : find_all_subjects(FALSE);