【问题标题】:Extract code from PHP function and insert in earlier function从 PHP 函数中提取代码并插入到较早的函数中
【发布时间】:2014-04-21 14:50:38
【问题描述】:

是否可以在 PHP 中调用包含用于文档头部的代码的函数,该代码可以插入到头部中。

例如。

<head>
<title>PHP Test</title>

<?php extra_data();?>

</head>

<body>

<?php new_function();?>

</body>

所以当new_function() 被调用时,它会输出一些代码,但还包含头部的额外信息,例如可以添加到顶部头部的extra_data() 函数的样式表。

既然这一切都是在服务器上执行的,这可能吗?

【问题讨论】:

  • 我误解了你的问题吗?您希望new_function() 影响extra_data() 但在extra_data() 执行之后? PHP 是连续的...
  • 学习 MVC,那么你就不需要做所有这些恶作剧了......

标签: php function include head


【解决方案1】:

你可以像这样定义extra_data()

function extra_data(){
  $new_function_data = new_function();
  switch($new_function_data['extra']){
    case 1:
       echo '<link href="extra1.css" rel="stylesheet" type="text/css">';
       break;
    case 2:
       echo '<link href="extra2.css" rel="stylesheet" type="text/css">';
       break;
  }
}

你可以像这样定义new_function()

function new_function(){
  //Add logic to determine what data should be returned
  $data['normal'] = 'Normal data to output';
  $data['extra'] = 'Extra data for extra_data()';
  return $data;
}

并将您的 php 更改为

<?php $new_function_data = new_function(); echo $new_function_data['normal']; ?>

【讨论】:

  • extra_data() 的内容是由 new_function() 定义的,不过稍后会调用它。把它想象成 new_function() 包括一个基于用户位置的画廊,然后将该画廊的样式表发送到 extra_data();在调用 new_function() 之前,extra_data() 不会知道有问题的样式表。
  • 如果你可以让new_function() 返回extra_data() 需要知道的内容,你可以在extra_data() 内调用new_function()
  • 更新了答案。我想我知道你现在在追求什么。
猜你喜欢
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 2015-09-06
  • 2019-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多