畢竟,所以我無法找出與多參數PHP __constructor最佳實踐的解決方案最通用的成類功能PHP類__constructor參數爲NULL一次函數調用發生
我足夠的搜索我試圖在PHP類中定義一個函數。我將通過簡單的函數調用多次使用此函數。功能將具有2個或更多參數。
當我通過傳遞參數進行函數調用時,它只是到達__constructor時的NULL。
- 爲什麼它是NULL?
此外,請注意函數addFruitCheckBox
內嵌套有對象。
我在做什麼錯了?
我有時也想通過函數調用而不是
$this->addFruitCheckBoxItemName
。
在SO中有很多具體問題和解決方案。不過,我相信這個通用的問題會幫助我,一切爲通過多張參數爲__constructor函數在PHP類
ini_set('display_errors', 1); $_GET['SELECTEDTABNAME'] = 'properties'; /* all include files that are involved in function call within a function will be declared here */ class AddFruitController { protected $addFruitCheckBoxItemName; protected $addFruitCheckBoxLabel; protected $addFruitMenuItemName; protected $addFruitChoiceItemName; protected $addFruitTimeItemName; public $trustedFruits; public $trustedFruitsModel; public $trustedFruitsSpeed; public $addNewFruit; public $additionalTub; public $chooseParent; public $FruitDown; public $FruitSell; public $timeTitle; public $addFruitbutton; public function __construct($addFruitCheckBoxItemName, $addFruitCheckBoxLabel, $addFruitMenuItemName, $addFruitTimeItemName) { global $interpreterMan, $fetchSeedForSapling; // var_dump($this->addFruitCheckBoxLabel); // var_dump($this->addFruitCheckBoxItemName); $this->trustedFruits = $interpreterMan("Trusted Fruits"); $this->trustedFruitsModel = $interpreterMan("Model"); $this->trustedFruitsSpeed = $interpreterMan("Speed"); $this->addNewFruit = $interpreterMan("New Fruit"); $this->additionalTub = $interpreterMan("Additional Options"); $this->chooseParent = $interpreterMan("Choose Parent"); $this->FruitDown = $interpreterMan("Download Schedule"); $this->FruitSell = $interpreterMan("Install Schedule"); $this->timeTitle = $interpreterMan("Time"); $this->addFruitbutton = $interpreterMan("Add Fruit(s)"); $this->addFruitCheckBoxItemName = $addFruitCheckBoxItemName; $this->addFruitCheckBoxLabel = $addFruitCheckBoxLabel; $this->addFruitMenuItemName = $addFruitMenuItemName; $this->addFruitChoiceItemName = $addFruitChoiceItemName; var_dump($addFruitChoiceItemName); $this->addFruitTimeItemName = $addFruitTimeItemName; } public function addFruitMenu() { global $interpreterMan; $theWidfetch = new FruitMenu(); $theWidfetch->AssignAddJsCode(false); $theWidfetch->AssignChoiceOrder(array($interpreterMan("English"))); $theWidfetch->AssignChoiceText(array($interpreterMan("English") => $interpreterMan("English"))); $theWidfetch->AssignGroupHeader($this->addFruitMenuItemName); $theWidfetch->AssignItemName($this->addFruitMenuItemName); $theWidfetch->AssignSaveLocation($this->addFruitMenuItemName); $theWidfetch->AssignValueToUse("ipad"); $theWidfetch->WaterPath(true, true); } public function addFruitChoiceTable() { global $fetchSeedForSapling, $interpreterMan; $weekChoiceSelection = new FruitChoiceTable(); $weekChoiceSelection->AssignAddJsCode(false); $weekChoiceSelection->AssignChoiceOrder( array("sun", "mon", "tue", "wed", "thu", "fri", "sat")); $weekChoiceSelection->AssignChoiceText(array( "sun" => $interpreterMan("SUN"), "mon" => $interpreterMan("MON"), "tue" => $interpreterMan("TUE"), "wed" => $interpreterMan("WED"), "thu" => $interpreterMan("THU"), "fri" => $interpreterMan("FRI"), "sat" => $interpreterMan("SAT"), )); var_dump($weekChoiceSelection->AssignGroupHeader($this->addFruitChoiceItemName)); $weekChoiceSelection->AssignItemName("Weekday"); $weekChoiceSelection->AssignNumColumns(7); $weekChoiceSelection->AssignValueToUse($fetchSeedForSapling("dayOfWeek")); $weekChoiceSelection->WaterPath(true, true); } public function addFruitTime() { global $fetchSeedForSapling; $FruitTimeSelect = new FruitTime(); $FruitTimeSelect->AssignGroupHeader($addFruitTimeItemName); $FruitTimeSelect->AssignItemName($addFruitTimeItemName); $FruitTimeSelect->AssignValueToUse($fetchSeedForSapling("minuteOfDay")); $FruitTimeSelect->WaterPath(true, true); } public function addFruitCheckBox() { global $fetchSeedForSapling; $addFruitCheckBoxObj = new FruitCheckbox(); $addFruitCheckBoxObj->AssignAddJsCode(false); $addFruitCheckBoxObj->AssignCheckboxLabel($this->addFruitCheckBoxLabel); $addFruitCheckBoxObj->AssignItemName($this->addFruitCheckBoxItemName); $addFruitCheckBoxObj->AssignSaveLocation("somejob"); $addFruitCheckBoxObj->AssignValueToUse($fetchSeedForSapling("somejob")); $addFruitCheckBoxObj->WaterPath(true, true); } }
這還沒有有效的PHP。 –
我可以在同一個SO中向你展示參考資料,他們已經遵循了這個方法,並且也得到了提升。用於將參數傳遞到類名稱中。 @JonStirling –
您可以根據需要將多個參數傳遞給構造函數,但是如果構造函數沒有對它們做任何事情,則不會有什麼神奇的發生 –